Как установить ограничения на регистрацию в WordPress

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

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

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

Ограничения позволяют:

  • Принимать только пользователей с допустимыми email-доменами (например, только корпоративные адреса);
  • Запретить регистрацию с временных почтовых сервисов, часто используемых спамерами;
  • Подключить систему приглашений, чтобы регистрировались только проверенные пользователи;
  • Добавить капчу или другие методы защиты от ботов.

Рассмотрим технические решения для реализации этих задач.

Ограничение регистрации по email-домену с помощью кода

Самый надежный и легкий способ — добавить проверку на сервере при регистрации. Для этого воспользуемся хуком registration_errors. Ниже пример функции, которая разрешает регистрацию только с email, заканчивающимися на @example.com и @wp-puzzle.ru:

function wp_puzzle_limit_registration_email_domain( $errors, $sanitized_user_login, $user_email ) {
    $allowed_domains = array('example.com', 'wp-puzzle.ru');
    $domain = substr(strrchr($user_email, '@'), 1);
    if ( ! in_array( strtolower($domain), $allowed_domains ) ) {
        $errors->add('domain_error', 'Регистрация разрешена только для корпоративных email-адресов.');
    }
    return $errors;
}
add_filter('registration_errors', 'wp_puzzle_limit_registration_email_domain', 10, 3);

Этот код добавьте в файл functions.php вашей темы или в отдельный плагин. При попытке зарегистрироваться с неподходящим email пользователь увидит ошибку.

Расширение проверки: запрет временных почтовых сервисов

Для борьбы с регистрацией через временные email-сервисы можно использовать готовые списки доменов. Например, можно создать массив с запрещёнными доменами и блокировать их:

function wp_puzzle_block_temp_email_domains( $errors, $sanitized_user_login, $user_email ) {
    $blocked_domains = array('tempmail.com', '10minutemail.com', 'mailinator.com');
    $domain = substr(strrchr($user_email, '@'), 1);
    if ( in_array( strtolower($domain), $blocked_domains ) ) {
        $errors->add('temp_email_error', 'Регистрация с временных почтовых адресов запрещена.');
    }
    return $errors;
}
add_filter('registration_errors', 'wp_puzzle_block_temp_email_domains', 10, 3);

Эти два фильтра можно объединить или расширить для более гибкой логики.

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

Если вы предпочитаете готовые решения, воспользуйтесь следующими плагинами:

  • Restrict User Signups — позволяет ограничить регистрацию по доменам email, установить капчу, настроить приглашения.
  • WP Email Restrictions — простой плагин для ограничения по email-доменам.
  • Invite Anyone — реализует систему приглашений, чтобы регистрация была доступна только по приглашению.

Все эти плагины можно найти и установить через админ-панель WordPress или скачать с официального репозитория.

Добавление капчи для защиты от спам-ботов

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

Для интеграции капчи можно использовать плагин My Popup с поддержкой reCAPTCHA или отдельные плагины вроде Really Simple CAPTCHA.

Реализация системы приглашений с помощью кода

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

function wp_puzzle_show_invite_code_field() {
    ?>
    <p>
        <label for="invite_code">Код приглашения<br />
            <input type="text" name="invite_code" id="invite_code" class="input" value="" size="25" /></label>
    </p>
    <?php
}
add_action('register_form', 'wp_puzzle_show_invite_code_field');

function wp_puzzle_validate_invite_code( $errors, $sanitized_user_login, $user_email ) {
    if ( empty( $_POST['invite_code'] ) || $_POST['invite_code'] !== 'SECRET123' ) {
        $errors->add('invite_code_error', 'Неверный код приглашения.');
    }
    return $errors;
}
add_filter('registration_errors', 'wp_puzzle_validate_invite_code', 10, 3);

Вместо статического кода 'SECRET123' можно подключить проверку из базы или другого источника.

Советы по корректной работе и безопасности

При добавлении ограничений на регистрацию важно:

  • Тестировать все изменения на тестовом сайте, чтобы не заблокировать себя.
  • Информировать пользователей об ограничениях в форме регистрации.
  • Обновлять списки запрещённых доменов и коды приглашений.
  • Использовать HTTPS для защиты данных при регистрации.

Заключение

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

Если хотите упростить работу с отзывами или аналитикой, посмотрите плагины из WPShop — они помогут расширить функционал вашего сайта на WordPress.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как удалить кэш AJAX-запросов в WordPress без плагинов
15.04.2026
Как создать безопасное AJAX-наполнение в WordPress с примером кода
20.03.2026
WooCommerce: как автоматически менять статус заказа при оплате через платежные системы
18.04.2026
Как создать подробный отчет об ошибках WordPress с помощью плагинов и кода
12.04.2026
WooCommerce: автоматическое удаление товаров с нулевым остатком и управление запасами
15.05.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее