Многие владельцы сайтов на WordPress сталкиваются с необходимостью ограничить регистрацию новых пользователей по определённым доменам электронной почты. Это полезно, если ваш сайт предназначен только для сотрудников конкретной организации, студентов учебного заведения или членов закрытого сообщества.
Почему важно ограничивать регистрацию по домену email
Открытая регистрация на сайте WordPress порой приводит к появлению спам-аккаунтов и нежелательных пользователей. Ограничение по домену email помогает:
- Контролировать круг пользователей;
- Повысить безопасность и качество аудитории;
- Снизить нагрузку на администратора по модерации;
- Упростить интеграцию с корпоративными или учебными системами.
Правильная настройка ограничений позволит автоматизировать процесс и избежать ручной проверки каждого нового пользователя.
Использование плагинов для ограничения регистрации по домену email
Существует несколько популярных плагинов, которые позволяют ограничить регистрацию пользователей по домену электронной почты. Среди них:
- Restrict Email Domain — простой и лёгкий плагин, который позволяет разрешить или запретить регистрацию с определёнными доменами;
- WP Email Domain Restriction — расширенный функционал с возможностью указать список разрешённых и запрещённых доменов;
- Clearfy Pro — многофункциональный плагин оптимизации и безопасности, который также позволяет управлять регистрацией.
Например, плагин Clearfy Pro позволяет не только настроить ограничения по email, но и улучшить безопасность сайта в целом.
Настройка плагина Restrict Email Domain
После установки и активации плагина:
- Перейдите в настройки плагина;
- Добавьте в список разрешённых доменов, например
example.com; - Сохраните изменения.
Теперь при попытке зарегистрироваться с email из другого домена пользователь увидит сообщение об ошибке.
Реализация ограничения регистрации по домену email через код
Если вы хотите обойтись без плагинов и добавить ограничение по домену email самостоятельно, можно использовать хук registration_errors. Вот пример кода для файла functions.php вашей темы или в отдельном плагине:
function wprus_restrict_registration_by_email_domain( $errors, $sanitized_user_login, $user_email ) {
// Список разрешённых доменов
$allowed_domains = array('example.com', 'mysite.org');
// Получаем домен из email
$email_domain = substr(strrchr($user_email, '@'), 1);
if ( ! in_array( $email_domain, $allowed_domains ) ) {
$errors->add( 'domain_restricted', __( 'Регистрация разрешена только для доменов: ' . implode(", ", $allowed_domains) ) );
}
return $errors;
}
add_filter( 'registration_errors', 'wprus_restrict_registration_by_email_domain', 10, 3 );
В этом коде мы проверяем домен email при регистрации пользователя и добавляем ошибку, если домен не входит в разрешённый список.
Как расширить функционал ограничения по email
Можно сделать проверку более гибкой, например:
- Добавить возможность блокировать отдельные домены;
- Позволить вводить список доменов через админку;
- Отправлять администратору уведомление о заблокированных попытках регистрации.
Вот пример, как добавить блокировку по запрещённым доменам:
function wprus_restrict_registration_by_blocked_domains( $errors, $sanitized_user_login, $user_email ) {
// Список запрещённых доменов
$blocked_domains = array('spam.com', 'baddomain.net');
$email_domain = substr(strrchr($user_email, '@'), 1);
if ( in_array( $email_domain, $blocked_domains ) ) {
$errors->add( 'domain_blocked', __( 'Регистрация с вашего домена запрещена.' ) );
}
return $errors;
}
add_filter( 'registration_errors', 'wprus_restrict_registration_by_blocked_domains', 20, 3 );
Как проверить работу ограничения на практике
После внедрения ограничения важно проверить его работу:
- Попробуйте зарегистрироваться с email из разрешённого домена — регистрация должна пройти успешно;
- Попробуйте с запрещённого домена — должна появиться ошибка;
- Проверьте, корректно ли выводится сообщение об ошибке пользователю;
- Проверьте работу на мобильных устройствах и в разных браузерах.
Если используется AJAX-форма регистрации, убедитесь, что ошибки корректно обрабатываются на клиенте.
Дополнительные рекомендации и советы
Чтобы сделать защиту регистрации более надёжной, часто используют комплексный подход:
- Ограничение по email-домену;
- Капча (например, Google reCAPTCHA);
- Модерация новых пользователей;
- Ограничение попыток регистрации с одного IP;
- Логи и уведомления администратора.
Плагины безопасности и оптимизации, например, Clearfy Pro, помогут настроить многие из этих функций без лишнего кода.
Таким образом, ограничение регистрации в WordPress по домену email — простой и эффективный способ контролировать аудиторию сайта и повысить безопасность. Используйте для этого проверенные плагины или добавляйте собственные решения через хуки WordPress.