Как установить ограничение на регистрацию в WordPress по домену e-mail

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

Ограничение регистрации пользователей в WordPress по домену e-mail — важный инструмент для контроля аудитории сайта. Например, если вы ведёте корпоративный портал, образовательный ресурс или сообщество по интересам, часто нужно разрешить регистрацию только пользователям с определёнными доменами электронной почты, например, @company.com или @university.edu. Это помогает:

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

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

Как реализовать ограничение регистрации по домену e-mail в WordPress

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

Пример кода для ограничения регистрации по домену e-mail

function wpcommunity_restrict_registration_by_email_domain($errors, $sanitized_user_login, $user_email) {
    // Список разрешённых доменов
    $allowed_domains = array('wpcommunity.ru', 'example.com');

    // Получаем домен из e-mail
    $email_domain = substr(strrchr($user_email, '@'), 1);

    if (!in_array(strtolower($email_domain), $allowed_domains)) {
        $errors->add('domain_restriction', __('Регистрация разрешена только для доменов: ' . implode(', ', $allowed_domains)));
    }

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

Данный код добавляет проверку домена e-mail при регистрации и выводит ошибку, если домен не входит в список разрешённых. Вы можете расширять массив $allowed_domains по своему усмотрению.

Использование плагинов для управления регистрацией по домену

Если вы не хотите писать код самостоятельно, можно использовать готовые плагины, которые позволяют гибко управлять регистрацией пользователей по e-mail. Рассмотрим несколько популярных вариантов:

1. WP Email Login

Этот плагин упрощает работу с e-mail при логине и регистрации. Хотя его основная задача — логин по e-mail, он поддерживает фильтрацию и валидацию адресов. Можно доработать или расширить функциональность с помощью дополнительных фильтров.

2. Restrict User Signups

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

3. Custom Registration Fields for WooCommerce

Если у вас интернет-магазин на WordPress и WooCommerce, этот плагин позволяет добавить кастомные поля и фильтры регистрации, включая проверку e-mail. Поддерживает настройку доменов для регистрации.

Как интегрировать проверку с плагином Clearfy Pro для оптимизации

Плагин Clearfy Pro предоставляет инструменты для оптимизации и безопасности WordPress. В нем есть возможность управлять регистрацией пользователей и фильтрацией e-mail. Вы можете использовать Clearfy Pro для комплексного решения: оптимизации безопасности сайта и ограничения регистрации по домену.

Расширение функционала: автоматическое уведомление администратора

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

Пример кода для отправки уведомления

function wpcommunity_notify_admin_on_restricted_registration($errors, $sanitized_user_login, $user_email) {
    $allowed_domains = array('wpcommunity.ru', 'example.com');
    $email_domain = substr(strrchr($user_email, '@'), 1);

    if (!in_array(strtolower($email_domain), $allowed_domains)) {
        // Отправляем письмо админу
        wp_mail(
            get_option('admin_email'),
            'Попытка регистрации с запрещённым доменом',
            'Пользователь с e-mail ' . $user_email . ' пытался зарегистрироваться, но домен не разрешён.'
        );
    }

    return $errors;
}
add_filter('registration_errors', 'wpcommunity_notify_admin_on_restricted_registration', 20, 3);

Вы можете объединить эту функцию с основной проверкой или использовать отдельно, чтобы улучшить контроль.

Практические советы по работе с ограничением регистрации

1. Всегда тестируйте ограничения на тестовом сайте, чтобы не заблокировать законных пользователей.
2. Сообщайте пользователям о причинах отказа — это улучшает UX.
3. Поддерживайте список разрешённых доменов в отдельной настройке, чтобы легко обновлять его без правки кода.
4. Используйте плагины с возможностью логирования неудачных попыток регистрации для мониторинга.
5. Комбинируйте ограничение по домену с другими методами защиты — капчей, проверкой IP и др.

Заключение

Ограничение регистрации в WordPress по домену e-mail — эффективный способ повысить безопасность и качество аудитории вашего сайта. Вы можете реализовать это как самостоятельно, добавив несколько строк кода, так и с помощью специальных плагинов. Кроме того, интеграция с такими инструментами, как Clearfy Pro, позволит дополнительно оптимизировать процесс регистрации и защитить сайт от нежелательных пользователей.

Как создать автоматическую систему удаления нерабочих изображений в WordPress
15.03.2026
Как отключить автоматическое обновление плагинов в WordPress
31.03.2026
Как отфильтровать и удалить спам-комментарии по IP в WordPress
05.03.2026
Автоматическое удаление старых отзывов в WordPress: как настроить и реализовать
03.04.2026
Как использовать WordPress REST API для создания кастомных эндпоинтов
19.01.2026

Задать вопрос о вордпресс, получить ответ - это все можно сделать в нашем сообществе WP. Сайт в данный момент в разработке, изучите ссылки ниже: