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

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

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

Пустые регистрации обычно характеризуются отсутствием email, имени пользователя или других обязательных полей. Неактивные — это пользователи, которые зарегистрировались, но не подтвердили свой аккаунт или не заходили на сайт длительное время.

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

Поиск и удаление пустых пользователей с помощью кода

Для начала разберёмся, как можно найти и удалить пустые или неактивные регистрации программно. В WordPress пользователи хранятся в таблице wp_users, а дополнительные метаданные — в wp_usermeta. Мы можем написать функцию, которая отфильтрует пользователей с пустыми email или без последнего входа.

Пример функции для удаления пустых email пользователей:

function wptemp_delete_empty_email_users() {
    global $wpdb;
    $users = $wpdb->get_col("SELECT ID FROM {$wpdb->users} WHERE user_email = '' OR user_email IS NULL");
    foreach ($users as $user_id) {
        require_once ABSPATH . 'wp-admin/includes/user.php';
        wp_delete_user($user_id);
    }
}
// Запуск функции
wptemp_delete_empty_email_users();

Эта функция выбирает пользователей без email и удаляет их через стандартный API WordPress, что обеспечивает корректное удаление данных.

Удаление пользователей, которые не заходили на сайт длительное время

Чтобы определить неактивных пользователей, можно опираться на мета-данные с последним временем входа. Если у вас нет плагина, который сохраняет эту информацию, её можно записывать самостоятельно при авторизации. Ниже пример, как добавить запись последнего входа:

function wptemp_save_last_login($user_login, $user) {
    update_user_meta($user->ID, 'wptemp_last_login', current_time('timestamp'));
}
add_action('wp_login', 'wptemp_save_last_login', 10, 2);

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

function wptemp_delete_inactive_users($months = 6) {
    global $wpdb;
    $threshold = strtotime("-{$months} months");
    $users = $wpdb->get_col("SELECT user_id FROM {$wpdb->usermeta} WHERE meta_key = 'wptemp_last_login' AND meta_value < {$threshold}");
    foreach ($users as $user_id) {
        require_once ABSPATH . 'wp-admin/includes/user.php';
        wp_delete_user($user_id);
    }
}
// Запуск удаления пользователей, неактивных 6 месяцев
wptemp_delete_inactive_users(6);

Использование плагинов для удаления неактивных и пустых пользователей

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

  • Inactive User Deleter — автоматически удаляет пользователей, не заходивших на сайт заданный период.
  • WP Bulk Delete — позволяет массово удалять пользователей по разным условиям, включая дату регистрации и метаданные.
  • Clearfy Pro (https://wpshop.ru/clearfy-pro?utm_source=wptemp.ru&utm_medium=article&utm_campaign=udalit-pustye-registracii-polzovatelej-wordpress) — расширенный набор оптимизаций, включая управление пользователями.

Настройка таких плагинов обычно проста: вы выбираете условия удаления и периодичность. Это удобно для регулярного обслуживания сайта.

Пример настройки WP Bulk Delete для удаления неактивных пользователей

В настройках плагина нужно выбрать раздел “Delete Users”, затем задать фильтр по дате последнего входа или регистрации. Можно указать, например, удалить пользователей, которые не заходили 180 дней. Плагин поддерживает отложенное и плановое удаление.

Как предотвратить появление пустых и неактивных пользователей

Удаление — это хорошо, но лучше не допускать появления мусорных аккаунтов. Несколько рекомендаций:

  • Включить подтверждение email регистрации. Это отсечёт ботов и фейковые регистрации.
  • Использовать капчу на странице регистрации. Плагины, например, Google Captcha (reCAPTCHA) помогут снизить спам.
  • Добавить валидацию полей регистрации. Например, проверять email и другие данные на стороне сервера и клиента.

Если вы используете плагин для регистрации, например, WPCommunity (https://wpshop.ru/wpcommunity?utm_source=wptemp.ru&utm_medium=article&utm_campaign=udalit-pustye-registracii-polzovatelej-wordpress), в нём есть встроенные настройки для усиления безопасности и проверки данных.

Полезные советы при работе с пользователями в WordPress

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

Для удаления через код с переназначением можно использовать второй параметр функции wp_delete_user:

wp_delete_user($user_id, $reassign_user_id);

Где $reassign_user_id — ID пользователя, которому переходят записи удаляемого.

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

Как автоматизировать создание чрезвычайных резервных копий в WordPress
08.02.2026
Как добавить ограничение на количество покупок товара в WooCommerce
29.04.2026
Как настроить фильтры в WP REST API для сложных запросов
11.04.2026
Как использовать WP-CLI для управления темами и плагинами WordPress
29.01.2026
Как удалить старые версии постов в WordPress
24.02.2026