В процессе работы с сайтами на WordPress часто возникает необходимость ограничить регистрацию пользователей по определённым доменам электронной почты или полностью запретить регистрацию по определённым email-адресам. Это актуально для сайтов с закрытым сообществом, корпоративных порталов или проектов, где важен контроль за списком пользователей.
Зачем ограничивать регистрацию по email и домену
Ограничения на регистрацию помогают повысить безопасность и качество аудитории сайта. Например, вы можете разрешить регистрацию только с корпоративных почтовых ящиков, таких как @company.com, и блокировать все остальные адреса. Либо наоборот — запретить регистрацию с бесплатных почтовых сервисов, чтобы уменьшить количество спам-аккаунтов.
Такой подход удобен для образовательных платформ, закрытых форумов и сервисов, где важно работать только с проверенными пользователями.
Способы реализации ограничений на регистрацию
В WordPress есть несколько методов реализации таких ограничений:
- Использование специализированных плагинов.
- Добавление собственного кода в файл
functions.phpтемы или создание небольшого кастомного плагина.
Плагины для ограничения регистрации
Рассмотрим несколько популярных решений:
- Restrict User Signups — позволяет ограничить регистрацию по домену email. Можно указать белый и чёрный списки доменов.
- WP Email Login — плагин с возможностью блокировать регистрацию по email, а также использовать email для входа.
- Clearfy Pro (ссылка: https://wpshop.ru/clearfy-pro/) — в этом плагине есть инструменты для управления регистрацией, включая фильтрацию email и контроль доступа.
Как самостоятельно реализовать ограничение регистрации по домену email в WordPress
Если вы предпочитаете минимализм и хотите избежать установки плагинов, можно добавить функцию, которая будет проверять email пользователя при регистрации и отклонять неподходящие адреса.
Пример кода для ограничения регистрации по домену
function wpmentor_restrict_email_domains($errors, $sanitized_user_login, $user_email) {
// Список разрешённых доменов
$allowed_domains = array('company.com', 'mydomain.ru');
// Получаем домен из email
$email_domain = substr(strrchr($user_email, '@'), 1);
if (!in_array($email_domain, $allowed_domains)) {
$errors->add('domain_restricted', __('Регистрация разрешена только с корпоративных email-адресов.'));
}
return $errors;
}
add_filter('registration_errors', 'wpmentor_restrict_email_domains', 10, 3);
В этом коде мы создаём фильтр registration_errors, который проверяет домен адреса пользователя. Если домен не входит в список разрешённых, добавляется ошибка, и регистрация блокируется.
Расширение: запрет регистрации по определённым доменам или email
Если наоборот нужно блокировать конкретные домены или отдельные email, код меняется так:
function wpmentor_block_email_domains($errors, $sanitized_user_login, $user_email) {
// Запрещённые домены
$blocked_domains = array('spamdomain.com', 'badmail.ru');
// Запрещённые email
$blocked_emails = array('blocked@example.com');
$email_domain = substr(strrchr($user_email, '@'), 1);
if (in_array($email_domain, $blocked_domains) || in_array($user_email, $blocked_emails)) {
$errors->add('domain_blocked', __('Регистрация с этого email или домена запрещена.'));
}
return $errors;
}
add_filter('registration_errors', 'wpmentor_block_email_domains', 10, 3);
Как протестировать и отладить ограничения на регистрацию
После добавления кода или активации плагина рекомендуется:
- Попробовать зарегистрироваться с разрешённого и запрещённого email.
- Убедиться, что сообщения об ошибках отображаются корректно.
- Проверить, что ограничения не мешают работе администратора или других важных ролей.
Если на сайте используется плагин кеширования или система безопасности, иногда они могут блокировать правильную работу фильтров регистрации. В таких случаях следует временно отключить кеш и протестировать снова.
Интеграция с плагинами WPShop для расширения функционала регистрации
Для сайтов на WordPress с использованием продуктов WPShop полезно комбинировать ограничения регистрации с автоматическим сбором отзывов и мониторингом безопасности. Например:
- Плагин WPRemark можно настроить так, чтобы приглашать к отзыву только зарегистрированных пользователей с разрешённых доменов.
- Clearfy Pro помогает управлять регистрацией и отключать ненужные возможности, уменьшая риск спама.
Итоги и рекомендации
Ограничение регистрации по email и домену — простой и эффективный способ повысить качество аудитории сайта и защитить его от нежелательных пользователей. В зависимости от специфики проекта вы можете выбрать подходящий метод — либо использовать готовые плагины, либо добавить кастомный код.
При самостоятельной реализации важно тщательно тестировать изменения и учитывать возможные сценарии использования, чтобы не помешать легитимным пользователям.