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

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

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

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

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

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

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

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

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

Для этого используем хук wp_login, который срабатывает при успешной авторизации:

function wpteam_update_last_login($user_login, $user) {
    update_user_meta($user->ID, '_wpteam_last_login', current_time('timestamp'));
}
add_action('wp_login', 'wpteam_update_last_login', 10, 2);

Этот код сохраняет в мета-поле пользователя время последнего входа в формате timestamp. Теперь можно использовать это значение для фильтрации неактивных пользователей.

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

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

Добавляем функцию удаления

function wpteam_delete_inactive_users() {
    $threshold = strtotime('-180 days');
    $args = [
        'meta_key' => '_wpteam_last_login',
        'meta_value' => $threshold,
        'meta_compare' => '<',
        'fields' => 'ID',
        'number' => 100,
    ];
    $user_query = new WP_User_Query($args);
    $users = $user_query->get_results();

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

Регистрируем WP-Cron задачу

function wpteam_schedule_inactive_user_cleanup() {
    if (!wp_next_scheduled('wpteam_inactive_user_cleanup_hook')) {
        wp_schedule_event(time(), 'daily', 'wpteam_inactive_user_cleanup_hook');
    }
}
add_action('wp', 'wpteam_schedule_inactive_user_cleanup');
add_action('wpteam_inactive_user_cleanup_hook', 'wpteam_delete_inactive_users');

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

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

Если вы не хотите писать код, можно использовать плагины, например:

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

Установка таких плагинов позволяет настроить очистку пользователей через интерфейс без программирования.

Дополнительные рекомендации по безопасности

Удаление неактивных пользователей — важный шаг, но лучше комплексно подходить к безопасности:

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

Например, можно отправлять email напоминания с помощью WP-Cron перед удалением аккаунта.

Выводы и практический совет

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

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

Как автоматизировать удаление старого контента в WordPress с помощью WP-Cron и кода
21.03.2026
Как автоматизировать создание и удаление записей через WP-Cron в WordPress
08.01.2026
Как автоматизировать удаление спама в комментариях WordPress
22.12.2025
Как использовать методы владельцев WordPress для управления публикациями
24.11.2025
Как создать собственный виджет в WordPress: подробное руководство с примерами кода
01.12.2025

Возникли задачи по WP? Вы можете задать свой вопрос на FAQwp.com Либо обратиться к специалистам поддержки.