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

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

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

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

Отключение входа для таких пользователей позволяет:

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

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

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

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

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

Эта функция добавит мета-данные с ключом wplogin_last_login, где будет храниться дата последнего входа в формате MySQL.

Отключение входа для неактивных пользователей через код

Шаг 1. Добавляем проверку при входе

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

function wplogin_block_inactive_users( $user, $username, $password ) {
    $last_login = get_user_meta( $user->ID, 'wplogin_last_login', true );
    if ( ! $last_login ) {
        // Если даты нет, считаем пользователя активным
        return $user;
    }
    $last_login_time = strtotime( $last_login );
    $days_inactive = ( time() - $last_login_time ) / DAY_IN_SECONDS;
    if ( $days_inactive > 90 ) { // 90 дней
        return new WP_Error( 'authentication_failed', __( '<strong>Ошибка:</strong> ваша учетная запись неактивна более 90 дней и временно заблокирована.' ) );
    }
    return $user;
}
add_filter( 'authenticate', 'wplogin_block_inactive_users', 30, 3 );

Этот код не позволит войти пользователям, которые не заходили в систему более 90 дней. Сообщение об ошибке появится на странице входа.

Шаг 2. Опционально: отправка уведомления пользователю

Чтобы не блокировать пользователя внезапно, можно отправлять ему уведомления за несколько дней до блокировки. Для этого используйте WP-Cron и функцию проверки активности.

function wplogin_notify_inactive_users() {
    $args = array(
        'meta_key' => 'wplogin_last_login',
        'meta_value' => date('Y-m-d H:i:s', strtotime('-80 days')),
        'meta_compare' => '<=',
        'fields' => 'all',
    );
    $users = get_users( $args );
    foreach ( $users as $user ) {
        $to = $user->user_email;
        $subject = 'Уведомление о неактивности учетной записи';
        $message = 'Здравствуйте, ваш аккаунт не использовался более 80 дней. Через 10 дней он будет временно заблокирован, если вы не войдете на сайт.';
        wp_mail( $to, $subject, $message );
    }
}
if ( ! wp_next_scheduled( 'wplogin_notify_inactive_hook' ) ) {
    wp_schedule_event( time(), 'daily', 'wplogin_notify_inactive_hook' );
}
add_action( 'wplogin_notify_inactive_hook', 'wplogin_notify_inactive_users' );
<

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

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

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

  • Inactive User Deleter — автоматически удаляет или деактивирует пользователей, которые не входили в систему за заданный период.
  • WP Last Login — записывает дату последнего входа и позволяет фильтровать пользователей по активности.
  • User Blocker — блокирует вход для выбранных пользователей или групп, в том числе для неактивных.

Например, User Blocker позволяет массово блокировать пользователей и настраивать период блокировки, что удобно для решения нашей задачи.

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

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

Резюме и рекомендации по внедрению

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

  • Отслеживать дату последнего входа с помощью пользовательских мета-данных;
  • Автоматизировать блокировку с уведомлениями;
  • Использовать проверенные плагины при отсутствии навыков программирования;
  • Регулярно проверять базу пользователей и удалять или деактивировать устаревшие аккаунты.

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

Как изменить URL страницы входа в WordPress
13.11.2025
Как отключить вход в WordPress для определённых ролей пользователей
16.03.2026
Как установить защиту WordPress от зловредных ботов
02.03.2026
Как удалить неиспользуемые плагины в WordPress через код
29.11.2025
Как решить проблему: не работает вход в WordPress при использовании WooCommerce
30.05.2026

wp-login.php - это страница входа в системе управления вордпресс. Если Вы хотите изменить внешний вид страницы входа - читайте здесь. Если вам нужно защитить админку - подробный мануал. Вы можете установить плагин Clearfy, в котором есть функция защиты админки и страницы входа.