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

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

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

Неактивные пользователи — это аккаунты, которые давно не заходили на сайт и не взаимодействовали с контентом. Их удаление помогает:

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

Ручное удаление занимает много времени, особенно если пользователей много. Поэтому лучше автоматизировать процесс.

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

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

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

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

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

Этот код сохраняет текущую дату и время в поле wplike_last_login при каждом входе пользователя.

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

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

function wplike_delete_inactive_users($days = 180) {
    $date_threshold = date('Y-m-d H:i:s', strtotime('-' . intval($days) . ' days'));

    $args = array(
        'meta_key'     => 'wplike_last_login',
        'meta_value'   => $date_threshold,
        'meta_compare' => '<',
        'fields'       => 'ID',
        'number'       => 1000,
    );

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

    if (!empty($users_to_delete)) {
        foreach ($users_to_delete as $user_id) {
            wp_delete_user($user_id);
        }
    }
}

Эту функцию можно запускать вручную или по расписанию с помощью WP-Cron.

Настройка автоматического запуска по расписанию

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

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

add_action('wplike_inactive_user_cleanup_event', function() {
    wplike_delete_inactive_users(180);
});

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

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

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

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

Для установки плагина просто используйте встроенный поиск в админке WordPress или скачайте с официального репозитория. Например, для Inactive User Deleter достаточно активировать плагин и настроить параметры.

Особенности и рекомендации при удалении пользователей

При автоматическом удалении пользователей важно учитывать:

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

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

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

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

Если вы хотите расширить функционал сайта, обратите внимание на продукты WPSHOP, которые помогут эффективно управлять пользователями и контентом.

Как отключить автоматическое обновление плагинов в WordPress
11.04.2026
Как сделать автоматический редирект в WordPress по условиям
04.03.2026
WooCommerce: как автоматически обновлять статус заказа при возврате платежа
30.05.2026
Как настроить отложенный запуск cron задач в WordPress без плагинов
07.02.2026
WooCommerce: как добавить дополнительные поля в заказ без плагинов
30.04.2026