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

|

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

Зачем ограничивать регистрацию по доменам email

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

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

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

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

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

Список запрещённых доменов

Для начала необходимо составить массив с доменами, которые вы хотите запретить. Например:

$wporg_forbid_domains = ['tempmail.com', 'mailinator.com', 'disposablemail.com'];

Список можно расширять по мере необходимости.

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

Добавьте следующий код в файл functions.php вашей темы или в отдельный плагин:

function wporg_restrict_registration_by_email_domain( $errors, $sanitized_user_login, $user_email ) {
    $forbid_domains = ['tempmail.com', 'mailinator.com', 'disposablemail.com'];
    $email_domain = strtolower( substr( strrchr( $user_email, '@' ), 1 ) );

    if ( in_array( $email_domain, $forbid_domains ) ) {
        $errors->add( 'registration_error', __( 'Регистрация с почтовых доменов типа ' . $email_domain . ' запрещена.', 'wporg' ) );
    }
    return $errors;
}
add_filter( 'registration_errors', 'wporg_restrict_registration_by_email_domain', 10, 3 );

Код работает так:

Так вы легко можете добавлять или убирать домены из массива $forbid_domains.

Обработка сообщений об ошибках

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

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

Если вы не хотите заниматься кодом, можно воспользоваться готовыми решениями. Рассмотрим несколько популярных плагинов:

1. WP Cerber Security

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

Подробнее о WP Cerber на WPSHOP

2. Registration Restrictions

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

Подробнее о Registration Restrictions на WPSHOP

3. Clearfy Pro

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

Подробнее о Clearfy Pro на WPSHOP

Расширенные варианты: блокировка по маскам и динамическое управление списком

Вместо жёсткого списка доменов можно использовать регулярные выражения для более гибкого контроля. Например, запретить все домены, заканчивающиеся на .ru или содержащие определённую подстроку.

function wporg_restrict_registration_by_email_domain_regex( $errors, $sanitized_user_login, $user_email ) {
    $patterns = ['/^.*@tempmail\.com$/i', '/^.*@.*disposable.*$/i'];
    foreach ( $patterns as $pattern ) {
        if ( preg_match( $pattern, $user_email ) ) {
            $errors->add( 'registration_error', __( 'Регистрация с этого почтового домена запрещена.', 'wporg' ) );
            break;
        }
    }
    return $errors;
}
add_filter( 'registration_errors', 'wporg_restrict_registration_by_email_domain_regex', 10, 3 );

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

Советы по тестированию и отладке ограничения регистрации

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

Если вы используете кеширование или CDN, не забудьте очистить кеш после внесения изменений.

Выводы и рекомендации

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

Для удобства рекомендуем ознакомиться с плагинами на WPSHOP, где вы найдёте решения, которые легко интегрируются и поддерживаются.

Как использовать WPRemark для автоматического отзыва о продуктах в WordPress
02.04.2026
Как использовать WP-Cron для автоматического удаления старых записей в WordPress
23.04.2026
Как сделать автоматическое резервное копирование WordPress с помощью кода
05.04.2026
Как создать многоуровневое меню WordPress с помощью кода
27.11.2025
Как создать и подключить собственный виджет в WordPress: подробное руководство с примерами кода
10.12.2025
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее