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

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

Что такое заблокированные пользователи и зачем их удалять

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

Регулярное удаление таких пользователей помогает:

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

Как определить заблокированных пользователей в WordPress

По умолчанию WordPress не имеет встроенного статуса «заблокирован». Обычно блокировка реализуется с помощью плагинов безопасности или вручную через пользовательские поля (user meta), например, добавляя мета-ключ blocked или account_status.

Если у вас установлен плагин, например, Clearfy Pro, он может использовать нестандартные мета-поля для блокировки.

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

Пример кода для удаления заблокированных пользователей по мета-ключу

Рассмотрим пример функции, которая удаляет пользователей, у которых в мета-данных есть ключ account_status со значением blocked. Этот код можно добавить в файл functions.php вашей темы или в отдельный плагин.

function wpguest_delete_blocked_users() {
    // Запрос пользователей с user meta 'account_status' == 'blocked'
    $args = array(
        'meta_key' => 'account_status',
        'meta_value' => 'blocked',
        'fields' => 'ID',
        'number' => 100 // за раз обрабатываем 100 пользователей
    );

    $blocked_users = get_users($args);

    if (empty($blocked_users)) {
        echo 'Заблокированные пользователи не найдены.';
        return;
    }

    foreach ($blocked_users as $user_id) {
        require_once(ABSPATH . 'wp-admin/includes/user.php');
        wp_delete_user($user_id);
        echo "Пользователь с ID {$user_id} удалён.<br>";
    }
}

// Запуск функции один раз
wpguest_delete_blocked_users();

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

Важные моменты при использовании кода

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

Автоматизация удаления заблокированных пользователей через WP-Cron

Чтобы не запускать удаление вручную, можно автоматизировать процесс через WP-Cron. Для этого зарегистрируем событие, которое будет запускать удаление, например, раз в неделю.

function wpguest_schedule_blocked_users_cleanup() {
    if (!wp_next_scheduled('wpguest_weekly_blocked_users_cleanup')) {
        wp_schedule_event(time(), 'weekly', 'wpguest_weekly_blocked_users_cleanup');
    }
}
add_action('wp', 'wpguest_schedule_blocked_users_cleanup');

add_action('wpguest_weekly_blocked_users_cleanup', 'wpguest_delete_blocked_users');

Данная реализация обеспечит регулярную очистку без вашего участия.

Плагины для управления и удаления пользователей в WordPress

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

  • User Cleanup — позволяет массово удалять пользователей по различным параметрам.
  • Inactive User Deleter — удаляет пользователей, которые давно не заходили на сайт.
  • Clearfy Pro — содержит инструменты для управления безопасностью и пользователями, включая блокировку и удаление.

Например, Clearfy Pro — универсальное решение, которое можно настроить под нужды вашего сайта.

Как защитить сайт от повторного появления заблокированных пользователей

Удаление — это только часть работы. Чтобы избежать повторного появления заблокированных или злоумышленников, рекомендуются следующие меры:

  • Используйте двухфакторную аутентификацию для пользователей с доступом к админке.
  • Устанавливайте ограничения на количество попыток входа (например, через Clearfy Pro).
  • Регулярно обновляйте WordPress и плагины.
  • Проводите аудит пользователей и назначайте минимально необходимые роли.

Выводы

Удаление заблокированных пользователей — важный элемент поддержания безопасности и производительности сайта на WordPress. Используя приведённый код и рекомендации, вы сможете эффективно очистить базу и автоматизировать процесс. А для удобства управления рекомендуем рассмотреть профессиональные решения, такие как Clearfy Pro.

Как автоматизировать удаление старого контента WooCommerce по дате
13.06.2026
Как автоматизировать удаление старого кеша в WordPress
08.04.2026
Как автоматизировать удаление старых ревизий записей в WordPress
12.03.2026
Автоматическое удаление старых товаров WooCommerce по дате
17.06.2026
Как автоматизировать удаление отзывов с пустым содержанием в WooCommerce
09.07.2026