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

Что такое неактивные пользователи и зачем их отслеживать

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

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

В этой статье разберём, как реализовать такую систему с помощью кода и популярных плагинов, а также как интегрировать её с WPCommunity для создания более дружелюбного пользовательского опыта.

Определение неактивного пользователя: критерии и подходы

Прежде чем создавать уведомления, нужно определить, по каким критериям считать пользователя неактивным. Обычно берут:

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

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

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

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

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

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

Далее напишем функцию, которая будет находить пользователей, не заходивших в систему более определённого времени. Например, 30 дней.

function wptour_get_inactive_users($days = 30) {
    $date_threshold = date('Y-m-d H:i:s', strtotime('-' . intval($days) . ' days'));
    $args = [
        'meta_key' => 'wptour_last_login',
        'meta_value' => $date_threshold,
        'meta_compare' => '<=',
        'fields' => 'all_with_meta'
    ];
    $user_query = new WP_User_Query($args);
    return $user_query->get_results();
}

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

Отправка автоматических уведомлений по email

Теперь реализуем отправку email-уведомлений этим пользователям. Можно использовать встроенную функцию wp_mail. В целях удобства и функционала советуем интегрировать с плагином Clearfy Pro, который позволяет гибко настраивать шаблоны писем и рассылки.

Пример простого цикла отправки письма:

function wptour_send_inactivity_notifications() {
    $inactive_users = wptour_get_inactive_users(30);
    foreach ($inactive_users as $user) {
        $to = $user->user_email;
        $subject = 'Мы скучаем по вам на нашем сайте';
        $message = "Здравствуйте, " . $user->display_name . "!\n\nМы заметили, что вы давно не заходили на наш сайт. Приглашаем вас вернуться и проверить новые материалы!";
        wp_mail($to, $subject, $message);
    }
}

Чтобы этот код выполнялся автоматически, можно добавить задачу в WordPress Cron.

Настройка WP Cron для автоматической рассылки

add_action('wptour_daily_inactivity_check', 'wptour_send_inactivity_notifications');

if (!wp_next_scheduled('wptour_daily_inactivity_check')) {
    wp_schedule_event(time(), 'daily', 'wptour_daily_inactivity_check');
}

Этот код запускает проверку и рассылку уведомлений раз в сутки.

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

Для более продвинутых сценариев можно добавить:

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

Также можно расширить критерии неактивности, например, учитывать активность в комментариях или посещение определённых страниц, добавив соответствующие метаданные и интеграции.

Пример расширенной функции с учётом комментариев

function wptour_get_inactive_users_extended($days = 30) {
    global $wpdb;
    $date_threshold = date('Y-m-d H:i:s', strtotime('-' . intval($days) . ' days'));

    $users = get_users();
    $inactive_users = [];

    foreach ($users as $user) {
        $last_login = get_user_meta($user->ID, 'wptour_last_login', true);
        $last_comment_date = $wpdb->get_var($wpdb->prepare(
            "SELECT MAX(comment_date) FROM $wpdb->comments WHERE user_id = %d",
            $user->ID
        ));

        if ( (!$last_login || $last_login <= $date_threshold) && (!$last_comment_date || $last_comment_date <= $date_threshold) ) {
            $inactive_users[] = $user;
        }
    }
    return $inactive_users;
}

Этот код проверяет, когда пользователь последний раз входил и когда оставлял комментарии, возвращая только тех, кто действительно неактивен.

Заключение по теме автоматических уведомлений

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

Использование кастомных метаполей, WP Cron и интеграция с плагинами Clearfy Pro и WPCommunity делает процесс гибким и мощным. Рекомендуется регулярно анализировать эффективность уведомлений и корректировать стратегию.

Как использовать хуки в WordPress: практические примеры и советы
09.11.2025
Как автоматизировать управление переадресациями в WordPress
10.04.2026
WooCommerce: не отображается корзина после добавления товара — как исправить
02.06.2026
Как использовать WP-CLI для оптимизации WordPress: практическое руководство
09.12.2025
Как автоматизировать удаление старых записей в WordPress
28.01.2026

Уроки со скриншотами, подробные руководства