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

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

Почему важно контролировать регистрацию пользователей

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

Иногда нужно изменить стандартную форму регистрации — добавить поля, изменить поведение или автоматически одобрять/отклонять заявки.

Как отключить регистрацию пользователей в WordPress без плагинов

Самый простой способ — отключить регистрацию в настройках: в админке перейдите в Настройки > Общие > Членство и снимите галочку «Любой может зарегистрироваться».

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

function wpsource_disable_user_registration() {
    if (isset($_GET['action']) && $_GET['action'] === 'register') {
        wp_redirect(home_url());
        exit;
    }
}
add_action('login_init', 'wpsource_disable_user_registration');

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

Как изменить процесс регистрации: добавляем проверку на email и запрещаем определённые домены

Иногда нужно разрешить регистрацию, но отфильтровать адреса электронной почты, например, чтобы запретить регистрацию с временных или подозрительных почтовых доменов. Сделать это можно с помощью хука registration_errors:

function wpsource_restrict_email_domains($errors, $sanitized_user_login, $user_email) {
    $blocked_domains = array('tempmail.com', 'mailinator.com', '10minutemail.com');
    $email_domain = substr(strrchr($user_email, "@"), 1);

    if (in_array($email_domain, $blocked_domains)) {
        $errors->add('blocked_email_domain', __('Регистрация с этого домена электронной почты запрещена.'));
    }

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

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

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

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

  • Clearfy Pro — плагин для оптимизации и безопасности, который позволяет отключать регистрацию, ограничивать доступ и фильтровать пользователей;
  • WPCommunity — если нужна регистрация с расширенными возможностями профилей и контролем;
  • My Popup — для создания кастомных окон регистрации и предупреждений.

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

Пример автоматического одобрения или отклонения регистрации на основе данных

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

function wpsource_auto_approve_or_reject($user_id) {
    $user_info = get_userdata($user_id);
    $email = $user_info->user_email;
    $allowed_domains = array('example.com', 'wpsource.ru');
    $email_domain = substr(strrchr($email, '@'), 1);

    if (!in_array($email_domain, $allowed_domains)) {
        require_once(ABSPATH . 'wp-admin/includes/user.php');
        wp_delete_user($user_id);
    }
}
add_action('user_register', 'wpsource_auto_approve_or_reject');

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

Как перенаправлять пользователей после регистрации и авторизации

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

function wpsource_redirect_after_registration($redirect_to, $request, $user) {
    return home_url('/welcome');
}
add_filter('registration_redirect', 'wpsource_redirect_after_registration', 10, 3);

Для перенаправления после входа в систему можно использовать:

function wpsource_login_redirect($redirect_to, $requested_redirect_to, $user) {
    if (isset($user->roles) && is_array($user->roles)) {
        if (in_array('administrator', $user->roles)) {
            return admin_url();
        } else {
            return home_url('/dashboard');
        }
    }
    return $redirect_to;
}
add_filter('login_redirect', 'wpsource_login_redirect', 10, 3);

Итог: гибкое управление регистрацией для вашего сайта

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

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

Как добавить поддержку PHP в визуальный редактор WordPress
11.03.2026
Как избежать конфликтов между плагинами WordPress: практические советы и примеры кода
11.01.2026
Как защитить WordPress от bruteforce-атак: практические методы и примеры
24.01.2026
WooCommerce: как убрать статус «Оплаченное» из фильтра заказов в админке
31.05.2026
Как добавить фильтр по мета-полям в админке WordPress
01.03.2026