Как запретить на WordPress регистрации новых пользователей
// отключить все регистрации add_filter( 'wp_pre_insert_user_data', 'disable_user_registrations', 10, 2 ); function disable_user_registrations ($data, $update) { if( !$update ) { return []; } return $data; }
Еще как вариант, не тестил
// === ПОЛНАЯ БЛОКИРОВКА РЕГИСТРАЦИИ (только админ) === // 1. Блокировка стандартной формы регистрации add_action('login_init', 'disable_all_registrations_hard'); function disable_all_registrations_hard() { if (isset($_GET['action']) && $_GET['action'] === 'register') { wp_redirect(home_url(), 301); exit; } } // 2. Перехват создания юзеров на уровне ядра WordPress add_filter('pre_user_login', 'block_user_creation_at_core', 10, 1); function block_user_creation_at_core($user_login) { // Если это не админка и не обновление существующего юзера - блокируем if (!is_admin() && !defined('WP_CLI')) { // Проверяем, что это создание нового юзера, а не обновление if (!isset($_POST['user_id']) || empty($_POST['user_id'])) { wp_die('Регистрация новых пользователей запрещена.', 'Доступ запрещен', ['response' => 403]); } } return $user_login; } // 3. Блокировка REST API add_filter('rest_endpoints', function($endpoints) { if (isset($endpoints['/wp/v2/users'])) { unset($endpoints['/wp/v2/users']); } if (isset($endpoints['/wp/v2/users/(?P<id>[\d]+)'])) { unset($endpoints['/wp/v2/users/(?P<id>[\d]+)']); } return $endpoints; }); // 4. Отключение XML-RPC add_filter('xmlrpc_enabled', '__return_false'); // 5. Запрет на уровне настроек WordPress add_filter('option_users_can_register', '__return_false'); // 6. Блокировка AJAX Herr Membership (именно через него регались боты) add_action('wp_ajax_nopriv_herr_membership_register', 'block_herr_membership_ajax'); add_action('wp_ajax_herr_membership_register', 'block_herr_membership_ajax'); function block_herr_membership_ajax() { wp_send_json_error(['message' => 'Регистрация запрещена'], 403); wp_die(); } // 7. Дополнительная защита через wp_insert_user add_filter('wp_pre_insert_user_data', 'final_registration_block', 10, 3); function final_registration_block($data, $update, $user_id) { // Разрешаем только обновление существующих юзеров админами if (!$update && !current_user_can('manage_options')) { return []; // Пустой массив вызовет ошибку и юзер не создастся } return $data; }
В шаблоне сайта herr – есть такая особенность – регистрация левых пользователей даже если отключил регистрацию и даже если добавил хук (первый).