Мониторинг активности пользователей на сайте WordPress — важная задача для администраторов и владельцев ресурсов, которые хотят анализировать поведение аудитории, улучшать безопасность и управлять контентом. В этой статье мы подробно рассмотрим, как создать автоматический отчет по активности пользователей с помощью кода и плагинов, а также как настроить отправку таких отчетов на почту.
Зачем нужен отчет по активности пользователей в WordPress
Отчет по активности пользователей позволяет получать структурированные данные о поведении посетителей и зарегистрированных пользователей на сайте. Это помогает:
- Отслеживать действия пользователей: входы, просмотры страниц, публикации и изменения контента.
- Выявлять подозрительную активность и предотвращать взломы.
- Оптимизировать контент и улучшать пользовательский опыт.
- Оценивать эффективность работы редакционной команды.
В WordPress по умолчанию нет встроенной функции для создания таких отчетов, поэтому придется использовать дополнительные инструменты и писать кастомный код.
Использование плагинов для сбора данных об активности
Плагин WP Activity Log
Один из самых популярных и функциональных плагинов — WP Activity Log. Он ведет подробный журнал активности, фиксирует авторизацию, изменения постов, настройку сайта и многое другое.
Плагин доступен в бесплатной и премиум-версиях. Для создания автоматических отчетов удобна именно платная версия с расширенными функциями экспорта и рассылки по email.
Плагин Simple History
Если вам нужен более легкий вариант — обратите внимание на Simple History. Он сохраняет изменения в админке и действия пользователей, отображая их в удобном виде. Экспорт данных можно делать вручную, а для автоматизации потребуется дополнительный код.
Создаем собственный механизм сбора и отправки отчетов
Если вы хотите гибко контролировать данные и формат отчетов, можно написать собственный код для сбора активности и рассылки отчетов. Ниже приведен пример, как с помощью пользовательских хуков и WP Cron создать ежедневный отчет по входам пользователей.
Шаг 1. Сбор данных о входах пользователей
Добавим функцию, которая будет сохранять события входа в пользовательскую таблицу или в опцию как массив записей.
function wpbit_log_user_login( $user_login, $user ) {
$log = get_option( 'wpbit_user_login_log', [] );
$log[] = [
'user_id' => $user->ID,
'user_login' => $user_login,
'time' => current_time( 'mysql' ),
'ip' => $_SERVER['REMOTE_ADDR'],
];
update_option( 'wpbit_user_login_log', $log );
}
add_action( 'wp_login', 'wpbit_log_user_login', 10, 2 );Этот код сохраняет в опции wpbit_user_login_log массив с данными о каждом входе пользователя: ID, логин, время и IP.
Шаг 2. Создаем функцию для генерации отчета
Пишем функцию, которая формирует текст отчета по активности за последние 24 часа.
function wpbit_generate_daily_user_login_report() {
$log = get_option( 'wpbit_user_login_log', [] );
$date_from = strtotime( '-1 day' );
$report_lines = [];
foreach ( $log as $entry ) {
$entry_time = strtotime( $entry['time'] );
if ( $entry_time >= $date_from ) {
$report_lines[] = sprintf(
'Пользователь %s (ID: %d) вошел в %s с IP %s',
$entry['user_login'],
$entry['user_id'],
$entry['time'],
$entry['ip']
);
}
}
if ( empty( $report_lines ) ) {
return 'За последние 24 часа входов пользователей не зафиксировано.';
}
return implode( "\n", $report_lines );
}Шаг 3. Отправка отчета по email с помощью WP Cron
Регистрируем событие, которое будет запускаться раз в сутки, и отправлять отчет на указанную почту.
function wpbit_schedule_daily_report() {
if ( ! wp_next_scheduled( 'wpbit_send_daily_user_login_report' ) ) {
wp_schedule_event( time(), 'daily', 'wpbit_send_daily_user_login_report' );
}
}
add_action( 'wp', 'wpbit_schedule_daily_report' );
function wpbit_send_daily_user_login_report() {
$to = get_option( 'admin_email' );
$subject = 'Ежедневный отчет по активности пользователей';
$message = wpbit_generate_daily_user_login_report();
wp_mail( $to, $subject, $message );
}
add_action( 'wpbit_send_daily_user_login_report', 'wpbit_send_daily_user_login_report' );Таким образом, каждый день администратор будет получать письмо с отчетом о входах пользователей за последние 24 часа.
Расширение функционала: отчет по просмотрам страниц и действиям
Отслеживание просмотров страниц
Для более детального анализа можно отслеживать просмотры страниц. Это можно сделать с помощью хука template_redirect и записи данных в базу.
function wpbit_log_page_view() {
if ( is_user_logged_in() ) {
$user_id = get_current_user_id();
$page = get_permalink();
$log = get_option( 'wpbit_page_view_log', [] );
$log[] = [
'user_id' => $user_id,
'page' => $page,
'time' => current_time( 'mysql' ),
];
update_option( 'wpbit_page_view_log', $log );
}
}
add_action( 'template_redirect', 'wpbit_log_page_view' );Это позволит генерировать отчеты о том, какие страницы посещают пользователи и когда.
Создание отчета с фильтрацией по дате и пользователю
Для удобства можно дополнить функцию генерации отчета аргументами для фильтрации по дате и ID пользователя, чтобы получать выборочные данные.
Это полезно, если нужно анализировать активность конкретного редактора или группы пользователей.
Использование WPGPT и Expert Review для анализа активности
Для автоматизации анализа и создания отчетов можно использовать продукты из WPSHOP, например, WPGPT для генерации текстовых отчетов на базе искусственного интеллекта и Expert Review для экспертного анализа данных сайта.
Эти решения помогут не только собирать данные, но и автоматически формировать понятные и полезные отчеты, экономя время администраторов.