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

В некоторых случаях необходимо ограничить регистрацию пользователей на сайте WordPress по домену их электронной почты. Например, если ваш сайт предназначен только для сотрудников определённой компании или участников сообщества, вы хотите, чтобы регистрация была доступна только пользователям с корпоративными e-mail, например, @company.com. В этой статье мы подробно рассмотрим, как реализовать такую функцию как с помощью плагинов, так и через кастомный код, чтобы вы могли выбрать оптимальный для себя вариант.

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

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

Без ограничения по домену e-mail на регистрацию могут попадать нежелательные пользователи, что создаст дополнительную нагрузку на администраторов и затруднит управление.

Кроме того, ограничение по домену e-mail часто используется в образовательных проектах, где регистрация доступна только студентам с университетскими почтовыми адресами.

Способы ограничения регистрации по домену e-mail в WordPress

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

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

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

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

Самые популярные плагины для решения этой задачи:

  • Restrict User Registration by Email Domain — позволяет задать белый список доменов, с которых разрешена регистрация.
  • WP Email Login Restriction — ограничивает регистрацию и вход пользователей по домену e-mail.
  • Clearfy Pro — многофункциональный плагин оптимизации, в нем есть модуль для ограничения регистрации по e-mail с гибкими настройками.

Установка и настройка плагина обычно сводится к добавлению разрешённых доменов в настройки. Например, в Restrict User Registration by Email Domain вы пишете в белый список домены через запятую, и плагин автоматически блокирует регистрацию с других доменов.

Преимущества плагинов

  • Простота настройки без знания кода.
  • Готовые уведомления для пользователей при отказе в регистрации.
  • Интеграция с другими плагинами и системами безопасности.

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

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

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

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

function wpcommunity_restrict_registration_by_email_domain($errors, $sanitized_user_login, $user_email) {
    $allowed_domains = array('company.com', 'wpcommunity.ru'); // Разрешённые домены

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

    if (!in_array($email_domain, $allowed_domains)) {
        $errors->add('domain_restricted', __('Регистрация с домена ', 'wpcommunity') . $email_domain . __(' запрещена. Используйте корпоративный e-mail.', 'wpcommunity'));
    }

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

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

Как подключить код к вашему сайту

Самый простой способ — добавить этот код в файл functions.php активной темы или создать отдельный плагин для кастомных функций. Если вы используете дочернюю тему, вставляйте код туда, чтобы не потерять при обновлении.

Расширение функционала

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

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

Обработка регистраций через сторонние формы

Если вы используете формы регистрации от плагинов, например, WPForms, Gravity Forms или User Registration, то для них потребуется внедрять ограничения отдельно, используя их хуки и фильтры. Многие из них имеют встроенные возможности для ограничения по e-mail домену.

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

Если необходимо разрешить не только точный домен, но и поддомены (например, info.company.com), то проверку можно усложнить регулярными выражениями. Например:

function wpcommunity_check_email_domain($email) {
    $allowed_patterns = array('/@company\.com$/', '/@subdomain\.company\.com$/');
    foreach ($allowed_patterns as $pattern) {
        if (preg_match($pattern, $email)) {
            return true;
        }
    }
    return false;
}

Локализация сообщений об ошибках

Для мультиязычных сайтов важно использовать функции локализации __() и _e(), чтобы сообщения об ошибках были понятны пользователям на нужном языке.

Интеграция с плагином Clearfy Pro

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

Заключение

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

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

Как автоматизировать удаление неактивных пользователей в WordPress
16.06.2026
Удаление пустых записей в termmeta WordPress: оптимизация базы данных
09.12.2025
Как отключить автоматическое обновление тем и плагинов в WordPress
17.04.2026
Как создать собственный метабокс в WordPress
06.11.2025
Как использовать хуки для оптимизации WordPress: практические советы и примеры
13.12.2025

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