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

Регистрация пользователей с бесплатными email-адресами (например, @gmail.com, @yahoo.com, @mail.ru) часто становится причиной появления ботов, спама и нежелательных аккаунтов на сайте WordPress. В этой статье рассмотрим, как эффективно ограничить регистрацию по таким email, используя собственный код и готовые плагины.

Почему стоит ограничить регистрацию по бесплатным email

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

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

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

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

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

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

function wpfaq_restrict_email_domains( $errors, $sanitized_user_login, $user_email ) {
    $blocked_domains = array('gmail.com', 'yahoo.com', 'mail.ru', 'yandex.ru', 'hotmail.com');
    $email_domain = substr(strrchr($user_email, '@'), 1);

    if (in_array(strtolower($email_domain), $blocked_domains)) {
        $errors->add('blocked_email_domain', __('Регистрация с бесплатных почтовых доменов запрещена. Используйте корпоративный email.'));
    }
    return $errors;
}
add_filter('registration_errors', 'wpfaq_restrict_email_domains', 10, 3);

Этот код нужно добавить в файл functions.php вашей темы или в отдельный плагин. При регистрации с запрещённым доменом пользователь увидит сообщение об ошибке и не сможет продолжить.

Как расширить список запрещённых доменов

Вы можете добавить свои домены в массив $blocked_domains. Также можно вынести список в опции, чтобы редактировать без изменения кода.

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

Если не хотите писать код, есть готовые решения:

  • WP Email Restrict — простой плагин для ограничения регистрации по email-доменам. Позволяет гибко настраивать разрешённые и запрещённые домены.
  • Ban Hammer — плагин для блокировки регистрации по IP, email и доменам с расширенными возможностями.
  • Clearfy Pro от WPShop — включает модуль безопасности, где можно настроить фильтрацию email при регистрации.

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

Как показывать пользователю подсказки при регистрации

Для улучшения UX полезно информировать пользователя, почему его email отклонён. В коде выше мы уже добавили сообщение об ошибке. Можно дополнительно использовать JavaScript для проверки email на клиенте.

function wpfaq_check_email_domain_js() {
    ?>
    <script>
    document.addEventListener('DOMContentLoaded', function() {
        var emailInput = document.getElementById('user_email');
        var form = emailInput ? emailInput.closest('form') : null;
        if (!emailInput || !form) return;

        form.addEventListener('submit', function(e) {
            var blockedDomains = ['gmail.com', 'yahoo.com', 'mail.ru', 'yandex.ru', 'hotmail.com'];
            var email = emailInput.value;
            var domain = email.substring(email.lastIndexOf('@') + 1).toLowerCase();
            if (blockedDomains.includes(domain)) {
                alert('Регистрация с бесплатных почтовых доменов запрещена. Пожалуйста, используйте корпоративный email.');
                e.preventDefault();
            }
        });
    });
    </script>
    <?php
}
add_action('login_enqueue_scripts', 'wpfaq_check_email_domain_js');

Этот скрипт добавляет проверку на стороне клиента и помогает избежать отправки формы с запрещённым email.

Плюсы и минусы ограничения регистрации по бесплатным email

Преимущества

  • Снижение количества спам-аккаунтов и ботов.
  • Повышение качества базы пользователей.
  • Упрощение управления сообществом.

Недостатки

  • Потеря части реальных пользователей, если они используют бесплатные email.
  • Необходимо информировать пользователей о причинах отказа.
  • Требуется поддержка и обновление списка доменов.

Рекомендации по внедрению и тестированию

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

Можно сделать отдельную страницу со списком разрешённых доменов и ссылкой на нее в форме регистрации.

Если используете плагин Clearfy Pro, настройте фильтры через его интерфейс — это удобно и безопасно.

Заключение

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

Как использовать функцию do_shortcode в WordPress для динамического вывода контента
13.02.2026
Как отключить регистрацию по бесплатным email в WordPress
25.03.2026
WooCommerce: автоматическое изменение статуса заказа при оплате Почтой России
19.05.2026
Как установить ограничение на регистрацию по IP в WordPress
31.03.2026
WooCommerce: как использовать хуки для автоматизации изменений статуса заказа
03.07.2026