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

Проблема регистрации пользователей с бесплатными email-адресами часто возникает на сайтах, где важно контролировать аудиторию и минимизировать количество фейковых или спам-аккаунтов. Бесплатные почтовые сервисы, такие как Gmail, Yahoo, Mail.ru, часто используются для массовой регистрации ботов или пользователей, которые не приносят пользы вашему проекту.

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

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

Некоторые проекты, например корпоративные сайты, образовательные платформы, сайты с платным доступом, заинтересованы в том, чтобы пользователи регистрировались только с корпоративных или оплачиваемых почтовых доменов. Это повышает безопасность и качество взаимодействия с аудиторией.

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

Ограничение регистрации помогает:

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

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

Плагин "Ban Hammer" для блокировки доменов email

Один из простых способов — использовать плагин Ban Hammer. Он позволяет блокировать регистрацию и комментирование с определённых доменов email.

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

  • gmail.com
  • yahoo.com
  • mail.ru
  • yandex.ru

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

Плагин "Registration Domain Restriction"

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

Плюсы:

  • Удобный интерфейс для управления списком разрешённых доменов;
  • Автоматическая проверка email при регистрации;
  • Можно настроить индивидуальные сообщения для пользователей.

Минус — если у вас большой список разрешённых доменов, возможно, нужно будет обновлять его регулярно.

Реализация ограничения регистрации по email с помощью собственного кода

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

function wpfaq_restrict_free_email_registration($errors, $sanitized_user_login, $user_email) {
    $blocked_domains = array('gmail.com', 'yahoo.com', 'mail.ru', 'yandex.ru');

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

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

    return $errors;
}
add_filter('registration_errors', 'wpfaq_restrict_free_email_registration', 10, 3);

Объяснение кода:

  • Функция получает объект ошибок регистрации, логин и email;
  • Определяет домен email после символа @;
  • Если домен найден в списке запрещённых, добавляет ошибку;
  • Ошибка блокирует регистрацию и выводит сообщение пользователю.

Расширение проверки с использованием регулярных выражений

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

function wpfaq_restrict_free_email_registration_regex($errors, $sanitized_user_login, $user_email) {
    $blocked_patterns = array('/@gmail\.com$/i', '/@yahoo\.com$/i', '/@mail\.ru$/i', '/@yandex\.ru$/i');

    foreach($blocked_patterns as $pattern) {
        if(preg_match($pattern, $user_email)) {
            $errors->add('free_email_blocked', __('Регистрация с бесплатных почтовых доменов запрещена. Используйте корпоративный email.'));
            break;
        }
    }

    return $errors;
}
add_filter('registration_errors', 'wpfaq_restrict_free_email_registration_regex', 10, 3);

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

Как протестировать ограничение регистрации

После внедрения кода или установки плагина важно проверить, что ограничение работает корректно:

  1. Попробуйте зарегистрироваться с email на gmail.com или другом заблокированном домене — регистрация должна быть запрещена с сообщением об ошибке.
  2. Попробуйте зарегистрироваться с email на разрешённом домене — регистрация должна пройти успешно.
  3. Проверьте работу на разных браузерах и устройствах, чтобы исключить локальные проблемы.

Если вы используете плагин, убедитесь, что он совместим с вашей версией WordPress и другими установленными расширениями.

Дополнительные рекомендации для повышения качества регистрации

Кроме ограничения по email, рекомендуем использовать комплексные меры защиты:

  • Добавить проверку reCAPTCHA или аналог;
  • Использовать двухфакторную аутентификацию;
  • Ограничивать количество регистраций с одного IP;
  • Проверять email на MX-записи для подтверждения работоспособности почты;
  • Использовать плагин Clearfy Pro с функциями безопасности и оптимизации регистрации (подробнее на wpshop.ru).

Пример интеграции с reCAPTCHA

Подключите плагин, например, WP Community или любой другой, который поддерживает reCAPTCHA, и настройте его для форм регистрации. Это уменьшит количество автоматических регистраций.

Вывод

Отключение регистрации по бесплатным email в WordPress — эффективный способ повысить качество пользовательской базы и безопасность сайта. Используйте готовые плагины для быстрого решения или собственные функции для тонкой настройки. Обязательно тестируйте внесённые изменения и комбинируйте с другими мерами безопасности.

WooCommerce: как использовать хуки для автоматизации изменений статуса заказа
29.05.2026
WooCommerce: решение проблемы с отображением товаров после обновления кеша
11.05.2026
Как добавить собственные типы постов в WordPress
04.12.2025
Как автоматически удалять спам комментарии в WordPress
12.03.2026
Как автоматически изменять данные пользователя в WordPress при регистрации
09.02.2026