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

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

Почему важно удалять неактивных пользователей WordPress

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

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

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

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

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

Добавление даты последнего входа пользователя

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

function wplike_update_last_login( $login, $user ) {
    update_user_meta( $user->ID, 'wplike_last_login', current_time('mysql') );
}
add_action( 'wp_login', 'wplike_update_last_login', 10, 2 );

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

Выбор периода неактивности

Рекомендуется установить период, например, 6 месяцев или 1 год. Пользователи, которые не заходили дольше этого срока, считаются неактивными и подлежат удалению.

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

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

function wplike_delete_inactive_users() {
    $period = 180; // количество дней неактивности
    $date = date( 'Y-m-d H:i:s', strtotime( "-{$period} days" ) );

    $args = array(
        'meta_key'     => 'wplike_last_login',
        'meta_value'   => $date,
        'meta_compare' => '<',
        'fields'       => 'ID',
        'number'       => 100, // лимит на удаление за раз
    );

    $user_query = new WP_User_Query( $args );
    $users = $user_query->get_results();

    if ( empty( $users ) ) {
        return;
    }

    foreach ( $users as $user_id ) {
        require_once( ABSPATH . 'wp-admin/includes/user.php' );
        wp_delete_user( $user_id );
    }
}

Эта функция ищет пользователей с датой последнего входа старше 180 дней и удаляет их. Лимит 100 пользователей за запуск позволяет избежать нагрузки.

Автоматизация через WP-Cron

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

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

add_action( 'wplike_delete_inactive_users_event', 'wplike_delete_inactive_users' );

Теперь WordPress будет запускать удаление автоматически каждую неделю.

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

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

  • Inactive User Deleter — позволяет удалять пользователей, которые не заходили длительное время, с возможностью настройки периода и отправки уведомлений;
  • WP Bulk Delete — мощный плагин для массового удаления записей и пользователей по различным условиям, в том числе по дате последнего входа;
  • Clearfy Pro — расширенный набор оптимизаций и инструментов, включая управление пользователями и безопасность.

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

Рекомендации по безопасности и резервному копированию

Перед автоматическим удалением рекомендуем:

  • Создавать резервные копии базы данных. Можно использовать плагин Backup от WPSHOP или другие;
  • Отправлять уведомления пользователям за 1-2 недели до удаления с рекомендацией войти в аккаунт, чтобы избежать удаления;
  • Логировать действия удаления для аудита и восстановления;
  • Проверять, чтобы не удалять администраторов и важные аккаунты.

Заключение

Автоматическое удаление неактивных пользователей — важная задача для поддержания чистоты и безопасности вашего сайта на WordPress. С помощью простого кода и WP-Cron вы можете настроить регулярное удаление, а готовые плагины помогут упростить процесс. Обязательно следите за безопасностью и резервными копиями, чтобы не потерять важные данные.

Как добавить дополнительные поля в формы WordPress без плагинов
28.01.2026
WooCommerce: как использовать хуки для добавления дополнительных полей в корзину
17.04.2026
WooCommerce: автоматическое удаление заказов при отказе оплаты
15.05.2026
Как использовать WPRemark для эффективного управления отзывами в WordPress
11.01.2026
Как изменить URL авторского архива в WordPress
20.03.2026