WPExperts

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

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

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

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

  • Контролировать аудиторию сайта;
  • Повысить безопасность и качество пользователей;
  • Упростить администрирование.

Например, если вы ведете корпоративный портал, можно разрешить регистрацию только с корпоративным доменом @wpexperts.ru.

Основные подходы к ограничению регистрации по email в WordPress

Существует два основных способа реализовать ограничение:

  1. Использование готовых плагинов;
  2. Реализация на уровне кода с помощью хуков WordPress.

Рассмотрим оба варианта.

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

Среди плагинов можно выделить следующие:

  • Restrict User Registration by Email Domain — позволяет настроить список разрешенных и запрещенных доменов;
  • Ban Email Domains — простой и легкий плагин для блокировки доменов;
  • Clearfy Pro — комплексный плагин оптимизации и безопасности, в котором есть функция ограничения регистрации по email.

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

Реализация ограничения по email через код

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

Пример функции с разрешением только корпоративного домена @wpexperts.ru:

function wpexperts_restrict_registration_by_email_domain( $errors, $sanitized_user_login, $user_email ) {
    $allowed_domain = 'wpexperts.ru';
    $email_domain = substr(strrchr($user_email, '@'), 1);

    if ( strtolower($email_domain) !== strtolower($allowed_domain) ) {
        $errors->add( 'domain_restriction', 'Регистрация разрешена только с корпоративным email @' . $allowed_domain );
    }

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

В этом коде мы получаем домен из email, сравниваем с разрешенным и при несовпадении добавляем ошибку.

Разрешение нескольких доменов

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

function wpexperts_restrict_registration_multiple_domains( $errors, $sanitized_user_login, $user_email ) {
    $allowed_domains = array( 'wpexperts.ru', 'edu.ru' );
    $email_domain = substr(strrchr($user_email, '@'), 1);

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

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

Запрет регистрации с определенных доменов

Обратная задача — запретить регистрацию с нежелательных доменов, например, бесплатных почтовых сервисов:

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

    if ( in_array( strtolower($email_domain), $banned_domains ) ) {
        $errors->add( 'domain_ban', 'Регистрация с домена ' . $email_domain . ' запрещена.' );
    }

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

Дополнительные рекомендации и проверка

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

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

Как интегрировать ограничение с плагином WPGPT для регистрации через AI-чат

Если вы используете плагин WPGPT для взаимодействия с пользователями через чат и регистрацию, можно дополнительно проверить домен email при отправке формы регистрации через AJAX, добавив аналогичную проверку на стороне AJAX-обработчика.

Выводы

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

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее