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

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

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

Неактивные аккаунты представляют несколько проблем:

  • Уязвимость безопасности. Старые аккаунты с слабыми паролями или устаревшими правами доступа могут быть взломаны.
  • Загромождение базы данных. Большое число пользователей увеличивает объём таблиц и замедляет запросы.
  • Ненужные рассылки. Маркетинговые письма могут уходить в пустоту, снижая репутацию почтового сервиса.

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

Как определить неактивного пользователя в WordPress

Для удаления необходимо определить критерии неактивности. Обычно учитывают дату последнего входа (логина). WordPress по умолчанию не хранит эту информацию, поэтому сначала нам нужно её записывать. Для этого можно использовать плагин или добавить код.

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

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

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

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

Автоматическое удаление пользователей, не заходивших более 180 дней

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

function wpfront_delete_inactive_users() {
    $days_inactive = 180; // Период неактивности в днях
    $date_threshold = date('Y-m-d H:i:s', strtotime('-' . $days_inactive . ' days'));

    $args = array(
        'meta_key' => 'wpfront_last_login',
        'meta_value' => $date_threshold,
        'meta_compare' => '&lt=',
        'fields' => 'ID',
        'number' => -1
    );

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

    foreach ( $inactive_users as $user_id ) {
        wp_delete_user( $user_id );
    }
}

// Запуск очистки раз в день через Cron
if ( ! wp_next_scheduled( 'wpfront_daily_delete_inactive_users' ) ) {
    wp_schedule_event( time(), 'daily', 'wpfront_daily_delete_inactive_users' );
}
add_action( 'wpfront_daily_delete_inactive_users', 'wpfront_delete_inactive_users' );

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

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

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

  • Inactive User Deleter. Автоматически удаляет пользователей по количеству дней неактивности, настраивается через админку.
  • WP Bulk Delete. Позволяет удалять пользователей по разным параметрам, в том числе по дате последнего входа.

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

Как избежать случайного удаления важных аккаунтов

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

  • Исключить из удаления администраторов и редакторов. В функции можно добавить проверку роли:
  • if ( in_array('administrator', $user->roles) ) continue;
  • Сделать резервную копию базы данных перед запуском скрипта.
  • Провести тестирование на тестовом сайте.

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

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

Итоговые рекомендации

Автоматическое удаление неактивных пользователей — важная задача для поддержания сайта WordPress в чистоте и безопасности. Комбинируйте запись даты последнего входа, регулярные проверки и безопасное удаление, чтобы избежать рисков. Если вы не хотите писать код, используйте проверенные плагины. А для комплексной оптимизации сайта рекомендуем попробовать Clearfy Pro.

Как удалить старые ревизии постов в WordPress из базы данных
26.01.2026
Как использовать REST API в WordPress для создания собственных настроек
25.11.2025
Как удалить неиспользуемые поля в базе данных WordPress для оптимизации
18.02.2026
Автоматическое удаление неактивных пользователей WordPress
27.03.2026
Как создать автоматический импорт постов из RSS в WordPress
30.03.2026