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

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

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

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

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

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

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

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

Использование плагина WP Last Login

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

Так вы легко определите, кто не заходил на сайт, например, более 6 месяцев.

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

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

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

Этот код сохраняет дату последнего входа пользователя в метаполе wpelement_last_login.

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

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

Плагин Inactive User Deleter

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

Преимущества:

  • Автоматизация процесса;
  • Гибкие настройки периода неактивности;
  • Возможность резервного копирования данных пользователей.

Использование плагина User Management Tools

Этот плагин расширяет стандартный список пользователей фильтрами по дате регистрации и последнему входу (если есть метаполе с датой). Позволяет выбрать и массово удалить неактивных.

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

Если вы предпочитаете контролировать процесс самостоятельно, можно написать скрипт на PHP, который удалит пользователей, не заходивших определённое время.

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

Данный код ищет пользователей, у которых дата последнего входа старше 180 дней, и удаляет их:

function wpelement_delete_inactive_users( $days = 180 ) {
    $date_threshold = date('Y-m-d H:i:s', strtotime("-{$days} days"));
    $args = array(
        'meta_key' => 'wpelement_last_login',
        'meta_value' => $date_threshold,
        'meta_compare' => '<',
        'fields' => 'ID',
        'number' => -1
    );
    $users = get_users( $args );
    foreach( $users as $user_id ) {
        wp_delete_user( $user_id );
    }
}
// Запуск удаления
wpelement_delete_inactive_users();

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

Расширение функционала: уведомление пользователей

Перед удалением разумно предупредить пользователей о грядущем удалении. Для этого можно отправить им email. Пример кода для отправки уведомления:

function wpelement_notify_inactive_users( $days = 180 ) {
    $date_threshold = date('Y-m-d H:i:s', strtotime("-{$days} days"));
    $args = array(
        'meta_key' => 'wpelement_last_login',
        'meta_value' => $date_threshold,
        'meta_compare' => '<',
        'fields' => array('ID', 'user_email'),
        'number' => -1
    );
    $users = get_users( $args );
    foreach( $users as $user ) {
        wp_mail( $user->user_email, 'Уведомление об удалении аккаунта',
            "Ваш аккаунт неактивен более {$days} дней и будет удалён, если вы не войдёте на сайт.");
    }
}

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

Удаление аккаунтов — серьёзная операция. Чтобы избежать ошибок, следуйте рекомендациям:

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

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

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

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

Как удалить старые изображения в WordPress без плагинов
19.01.2026
Массовое удаление и изменение атрибутов товаров в WooCommerce: практическое руководство
21.05.2026
Как автоматизировать удаление старых комментариев в WordPress
09.03.2026
Как создать настраиваемую настройку темы WordPress в панели администратора
12.01.2026
Как создать и настроить круговое меню в WordPress без плагинов
04.01.2026