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

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

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

В WordPress нет встроенного статуса «заблокирован» для пользователей. Чаще всего блокировка реализуется через изменение роли пользователя, добавление специального мета-поля или изменение поля user_status в базе данных. В зависимости от способа блокировки — меняется и подход к удалению.

Например, популярный способ блокировки — установка роли пользователя на blocked или disabled. Другой вариант — добавление мета-поля wpbe_blocked со значением true. В этой статье рассмотрим оба варианта для наглядности.

Удаление пользователей с ролью «blocked»

Если в вашем сайте заблокированные пользователи имеют роль blocked, то можно удалить их по этой роли. Для этого используем WP_User_Query и функцию wp_delete_user().

function wpbe_delete_blocked_users_by_role() {
    $blocked_users = new WP_User_Query(array(
        'role' => 'blocked',
        'fields' => 'ID'
    ));

    if ( ! empty( $blocked_users->results ) ) {
        foreach ( $blocked_users->results as $user_id ) {
            wp_delete_user( $user_id );
        }
    }
}

Вы можете вызвать эту функцию в нужном месте, например, по крону или вручную через админку.

Пример вызова функции по крону

Чтобы автоматизировать удаление заблокированных пользователей, зарегистрируем событие WP-Cron:

if ( ! wp_next_scheduled( 'wpbe_delete_blocked_users_cron' ) ) {
    wp_schedule_event( time(), 'daily', 'wpbe_delete_blocked_users_cron' );
}

add_action( 'wpbe_delete_blocked_users_cron', 'wpbe_delete_blocked_users_by_role' );

Так функция будет запускаться ежедневно и удалять пользователей с ролью «blocked».

Удаление пользователей по мета-полю «wpbe_blocked»

Если блокировка реализована через мета-поле, нужно использовать WP_User_Query с параметром meta_query. Рассмотрим пример:

function wpbe_delete_blocked_users_by_meta() {
    $blocked_users = new WP_User_Query(array(
        'meta_key' => 'wpbe_blocked',
        'meta_value' => 'true',
        'fields' => 'ID'
    ));

    if ( ! empty( $blocked_users->results ) ) {
        foreach ( $blocked_users->results as $user_id ) {
            wp_delete_user( $user_id );
        }
    }
}

Принцип тот же — получаем ID пользователей с нужным мета-полем и удаляем их.

Советы по безопасности и бэкапу

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

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

Использование плагинов для управления заблокированными пользователями

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

  • User Blocker — позволяет блокировать и разблокировать пользователей без удаления, а также массово управлять ими.
  • Bulk Delete — мощный инструмент для массового удаления пользователей по различным условиям, включая роли и мета-поля.

Для интеграции с данными плагинами вы можете использовать их API или расширять функционал своими скриптами.

Интеграция с плагином Clearfy Pro для управления пользователями

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

Заключение

Удаление заблокированных пользователей в WordPress — частая и полезная задача для администраторов. Выбор метода зависит от того, как именно реализована блокировка. Использование кастомных функций на основе WP_User_Query и wp_delete_user() позволяет эффективно и безопасно решать эту задачу, а автоматизация через WP-Cron освобождает вас от рутинных операций.

Если вы хотите получить готовые решения и дополнительные инструменты для управления пользователями и безопасности сайта, обратите внимание на Clearfy Pro.

WooCommerce: настройка и использование различных методов оплаты
16.05.2026
Автоматическое удаление спама в комментариях WordPress
03.12.2025
Как удалить все посты определённого автора в WordPress
19.02.2026
Как удалить пустые термины таксономий в WordPress
17.03.2026
WooCommerce: автоматическое удаление заказов по просроченным срокам
04.06.2026