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

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

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

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

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

Поэтому регулярное удаление или деактивация таких аккаунтов — хорошая практика.

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

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

Примеры критериев неактивности:

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

Для сбора этих данных можно использовать разные подходы, рассмотрим их ниже.

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

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

function premiumwp_update_last_login( $login ) {
    $user = get_user_by( 'login', $login );
    if ( $user ) {
        update_user_meta( $user->ID, 'premiumwp_last_login', current_time('mysql') );
    }
}
add_action( 'wp_login', 'premiumwp_update_last_login' );

Этот код сохраняет дату и время последнего входа в метаполе premiumwp_last_login.

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

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

function premiumwp_get_inactive_users( $days = 180 ) {
    $date_threshold = date( 'Y-m-d H:i:s', strtotime( "-{$days} days" ) );

    $args = array(
        'meta_key'     => 'premiumwp_last_login',
        'meta_value'   => $date_threshold,
        'meta_compare' => '<',
        'fields'       => 'ID',
        'number'       => -1,
    );

    $users = get_users( $args );
    return $users;
}

Этот код вернёт массив ID пользователей, которые не входили более 180 дней.

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

Можно настроить WP-Cron задачу, которая будет удалять таких пользователей автоматически, например, раз в месяц.

function premiumwp_schedule_inactive_user_cleanup() {
    if ( ! wp_next_scheduled( 'premiumwp_cleanup_inactive_users' ) ) {
        wp_schedule_event( time(), 'monthly', 'premiumwp_cleanup_inactive_users' );
    }
}
add_action( 'wp', 'premiumwp_schedule_inactive_user_cleanup' );

function premiumwp_cleanup_inactive_users_callback() {
    $inactive_users = premiumwp_get_inactive_users( 180 );
    foreach ( $inactive_users as $user_id ) {
        require_once( ABSPATH . 'wp-admin/includes/user.php' );
        wp_delete_user( $user_id );
    }
}
add_action( 'premiumwp_cleanup_inactive_users', 'premiumwp_cleanup_inactive_users_callback' );

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

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

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

  • Inactive User Deleter — плагин для автоматического удаления пользователей, которые не заходили на сайт определённое время.
  • WP Last Login — фиксирует дату последнего входа и позволяет фильтровать пользователей по активности.
  • Clearfy Pro (https://wpshop.ru/clearfy-pro?utm_source=premiumwp.ru&utm_medium=article&utm_campaign=premiumwp-kak-otfiltrovat-i-udalit-neaktivnyh-polzovatelej-v-wordpress-s-pomoshhyu-koda-i-pluginov) — универсальный оптимизатор, в том числе помогает очищать неактивных пользователей и оптимизировать базу данных.

Пример использования плагина Inactive User Deleter: после установки и активации перейдите в настройки плагина, задайте период неактивности (например, 180 дней) и запустите удаление. Плагин также поддерживает автоматический запуск по расписанию.

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

Удаление пользователей — серьёзная операция, поэтому необходимо соблюдать меры предосторожности:

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

Для резервного копирования можно использовать плагин PremiumWP Backup (https://wpshop.ru/premiumwp-backup?utm_source=premiumwp.ru&utm_medium=article&utm_campaign=premiumwp-kak-otfiltrovat-i-udalit-neaktivnyh-polzovatelej-v-wordpress-s-pomoshhyu-koda-i-pluginov), который автоматизирует создание бэкапов.

Выводы и рекомендации по работе с неактивными пользователями WordPress

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

  1. С помощью собственного кода, добавляющего хранение даты последнего входа, выборку неактивных пользователей и автоматическое удаление через WP-Cron.
  2. Используя специализированные плагины, которые упрощают эту задачу и предоставляют удобный интерфейс.

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

WooCommerce: как успешно настроить генерацию PDF-фактур без плагинов
10.05.2026
Как отключить автоматическое обновление плагинов в WordPress
19.03.2026
Оптимизация базы данных WordPress: практические методы и примеры
09.11.2025
Оптимизация загрузки и отображения библиотек JS и CSS в WordPress
25.12.2025
Как создать динамические таблицы в WordPress с помощью PremiumWP
05.01.2026