Как запретить регистрацию по домену email в WordPress с подробным руководством

|

В этой статье подробно разберём, как запретить регистрацию пользователей в WordPress по определённым доменам email. Этот приём полезен, когда нужно ограничить регистрацию корпоративных аккаунтов, спамеров или нежелательных доменных зон. Мы рассмотрим несколько способов решения задачи — через код и с помощью плагинов, а также приведём примеры и рекомендации.

Почему важно ограничивать регистрацию по домену email

WordPress по умолчанию не ограничивает регистрацию пользователей по домену электронной почты. Это может привести к нежелательной регистрации с корпоративных или поддельных адресов, спаму и прочим проблемам. Особенно актуально для закрытых сообществ, платных курсов или корпоративных сайтов.

Ограничение регистрации по домену позволяет:

Как запретить регистрацию по домену email через functions.php

Самый простой способ — добавить проверку при регистрации пользователя, которая будет блокировать регистрацию, если email содержит запрещённый домен. Для этого используем хук registration_errors, где можем выполнить валидацию.

Пример функции wporg_zapret_email_domain_registration:

function wporg_zapret_email_domain_registration( $errors, $sanitized_user_login, $user_email ) { 
    // Список запрещённых доменов
    $blocked_domains = array('spamdomain.com', 'badmail.ru', 'example.net');

    $email_domain = substr(strrchr($user_email, '@'), 1);

    if (in_array(strtolower($email_domain), $blocked_domains)) {
        $errors->add('domain_blocked', __('Регистрация с данного домена email запрещена.'));
    }
    return $errors;
}
add_filter('registration_errors', 'wporg_zapret_email_domain_registration', 10, 3);

В этом коде мы проверяем домен email и, если он в списке запрещённых, добавляем ошибку регистрации. Пользователь увидит сообщение и не сможет зарегистрироваться с этим адресом.

Как расширить проверку: использование масок и поддоменов

Если нужно блокировать не только точные домены, но и поддомены или похожие, можно использовать регулярные выражения. Пример:

function wporg_zapret_email_domain_registration_regex( $errors, $sanitized_user_login, $user_email ) {
    $blocked_patterns = array('/^.*@spamdomain\.com$/i', '/^.*@.*\.badmail\.ru$/i');
    foreach ($blocked_patterns as $pattern) {
        if (preg_match($pattern, $user_email)) {
            $errors->add('domain_blocked', __('Регистрация с данного домена email запрещена.'));
            break;
        }
    }
    return $errors;
}
add_filter('registration_errors', 'wporg_zapret_email_domain_registration_regex', 10, 3);

Так вы можете заблокировать, например, все поддомены badmail.ru и основной домен spamdomain.com.

Использование плагинов для ограничения регистрации по email-доменам

Если не хочется править код, можно воспользоваться готовыми плагинами. Вот несколько проверенных вариантов:

Плагины удобны, если вы хотите быстро настроить ограничения без погружения в код, а также если хотите более гибкие настройки, например, сообщения пользователю, логи регистрации и т.п.

Как сделать индивидуальное сообщение об ошибке и логирование попыток

При блокировке регистрации полезно не только показать пользователю понятное сообщение, но и записать попытку в лог для администраторов. Добавим расширенный пример:

function wporg_zapret_email_domain_registration_advanced( $errors, $sanitized_user_login, $user_email ) {
    $blocked_domains = array('spamdomain.com', 'badmail.ru');
    $email_domain = substr(strrchr($user_email, '@'), 1);

    if (in_array(strtolower($email_domain), $blocked_domains)) {
        $message = sprintf('Попытка регистрации запрещена: домен %s заблокирован', $email_domain);
        error_log($message); // Запись в лог ошибок сервера
        $errors->add('domain_blocked', __('Регистрация с домена вашего email запрещена. Если это ошибка, свяжитесь с администрацией сайта.'));
    }
    return $errors;
}
add_filter('registration_errors', 'wporg_zapret_email_domain_registration_advanced', 10, 3);

Так вы сможете отслеживать попытки регистрации с запрещённых доменов, что поможет повышать безопасность и фильтровать подозрительную активность.

Советы по поддержке и расширению функционала

При внедрении ограничения по email доменам учтите:

Также можно комбинировать запреты с разрешениями, например, разрешать регистрацию только с корпоративных доменов и блокировать остальные. Для этого достаточно поменять логику проверки в коде или в настройках плагина.

Итог

Ограничение регистрации по домену email — важный инструмент контроля и безопасности WordPress-сайта. Вы можете реализовать его через простой код в файле functions.php или выбрать готовый плагин, например, Clearfy Pro. Главное — регулярно обновлять список запрещённых доменов и следить за поведением новых пользователей.

Как автоматизировать очистку кеша в WordPress: практические примеры и решения
25.03.2026
Как установить ограничение на число сообщений в формах WordPress
21.01.2026
Как удалить старые версии записей WordPress для освобождения места
26.04.2026
Как автоматизировать удаление нерабочих плагинов WordPress
28.01.2026
Как найти и устранить canonical-ошибки в WordPress
29.08.2026
×
-15%
на премиум-тему
Reboot

Создай сайт мечты
на WordPress!

Купить со скидкой »