Для многих сайтов на WordPress важно иметь инструмент для отслеживания и анализа активности пользователей. Это помогает улучшать контент, выявлять популярные разделы и контролировать взаимодействие с сайтом. В этой статье мы подробно рассмотрим, как создать автоматический отчет по активности пользователей в WordPress с примерами кода и рекомендациями по плагинам.
Почему важен отчет по активности пользователей в WordPress
Понимание того, как пользователи взаимодействуют с сайтом, позволяет принимать взвешенные решения для улучшения UX и контента. Отчет по активности помогает ответить на вопросы:
- Какие страницы посещают чаще всего?
- Сколько времени проводят на сайте пользователи?
- Какие действия совершают зарегистрированные пользователи (комментарии, заказы, заполнение форм)?
- Какие пользователи самые активные?
Реализовать такой отчет можно разными способами — через специализированные плагины или собственный код, что дает гибкость и контроль.
Использование плагинов для сбора данных об активности
Для начала рассмотрим готовые решения, которые помогут быстро внедрить мониторинг активности:
1. WP Activity Log
Один из самых популярных плагинов для мониторинга активности. Позволяет отслеживать входы в систему, изменения в контенте, публикации и многое другое.
Плюсы:
- Подробные логи событий
- Настраиваемые уведомления
- Отчеты в удобном формате
Минусы:
- Часть функций доступна только в премиум версии
Подробнее и скачать: WP Activity Log на WPSHOP.
2. Simple History
Легкий плагин для отображения истории действий пользователей прямо в админке.
Плюсы:
- Простая настройка
- Отслеживание действий в реальном времени
Минусы:
- Меньше функций по сравнению с WP Activity Log
Создание собственного автоматического отчета по активности в WordPress
Если нужны кастомные решения, которые учитывают уникальные задачи сайта, можно реализовать сбор и вывод данных самостоятельно. Ниже приведен пример, как можно сохранять и выводить данные о посещениях пользователей.
Сбор данных о посещениях пользователей
Добавим фиксацию посещений для авторизованных пользователей в базу данных или в пользовательские метаданные.
function wpkpi_track_user_visit() {
if ( is_user_logged_in() ) {
$user_id = get_current_user_id();
$visits = get_user_meta( $user_id, 'wpkpi_user_visits', true );
if ( ! is_array( $visits ) ) {
$visits = array();
}
$visits[] = current_time( 'mysql' );
// Ограничим количество записей до 100
if ( count( $visits ) > 100 ) {
array_shift( $visits );
}
update_user_meta( $user_id, 'wpkpi_user_visits', $visits );
}
}
add_action( 'wp_head', 'wpkpi_track_user_visit' );
Этот код добавляет в метаданные пользователя дату и время каждого посещения, ограничивая историю 100 последними визитами.
Вывод отчета в админке
Создадим страницу в админке с отчетом по активности пользователей.
function wpkpi_add_admin_menu() {
add_menu_page(
'Отчет активности пользователей',
'Отчет активности',
'manage_options',
'wpkpi-user-activity-report',
'wpkpi_render_user_activity_report',
'dashicons-chart-area',
20
);
}
add_action( 'admin_menu', 'wpkpi_add_admin_menu' );
function wpkpi_render_user_activity_report() {
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( 'Доступ запрещен' );
}
$users = get_users();
echo '<div class="wrap"><h1>Отчет по активности пользователей</h1><table class="wp-list-table widefat fixed striped">';
echo '<thead><tr><th>Пользователь</th><th>Последние 5 посещений</th></tr></thead><tbody>';
foreach ( $users as $user ) {
$visits = get_user_meta( $user->ID, 'wpkpi_user_visits', true );
if ( ! $visits ) {
$visits = array();
}
$last_visits = array_slice( $visits, -5 );
echo '<tr><td>' . esc_html( $user->user_login ) . '</td><td>' . esc_html( implode( ', ', $last_visits ) ) . '</td></tr>';
}
echo '</tbody></table></div>';
}
Теперь в админке появится меню "Отчет активности" с таблицей последних посещений пользователей.
Расширение отчета: анализ действий пользователей
Кроме посещений, можно логировать другие события — публикации, комментарии, изменения профиля. Для этого стоит использовать хуки WordPress и записывать данные в пользовательские метаданные или отдельные таблицы.
Например, логирование публикаций:
function wpkpi_log_post_published( $ID, $post ) {
$user_id = get_current_user_id();
if ( $user_id ) {
$posts_published = get_user_meta( $user_id, 'wpkpi_posts_published', true );
if ( ! is_array( $posts_published ) ) {
$posts_published = array();
}
$posts_published[] = array(
'post_id' => $ID,
'date' => current_time( 'mysql' ),
'title' => get_the_title( $ID )
);
update_user_meta( $user_id, 'wpkpi_posts_published', $posts_published );
}
}
add_action( 'publish_post', 'wpkpi_log_post_published', 10, 2 );
Так можно расширить отчет, показывая активность в разных аспектах.
Автоматизация и планировщик задач для регулярной генерации отчетов
Чтобы отчет обновлялся автоматически и отправлялся, например, на электронную почту, используйте WP-Cron.
Пример регистрации задачи:
function wpkpi_schedule_report_email() {
if ( ! wp_next_scheduled( 'wpkpi_send_activity_report' ) ) {
wp_schedule_event( time(), 'daily', 'wpkpi_send_activity_report' );
}
}
add_action( 'wp', 'wpkpi_schedule_report_email' );
function wpkpi_send_activity_report_callback() {
// Здесь формируем отчет и отправляем на почту
$admin_email = get_option( 'admin_email' );
$subject = 'Ежедневный отчет по активности пользователей';
$message = 'Здесь можно вставить сформированный отчет';
wp_mail( $admin_email, $subject, $message );
}
add_action( 'wpkpi_send_activity_report', 'wpkpi_send_activity_report_callback' );
Так вы сможете получать на почту свежие данные без ручного запуска.
Выводы и рекомендации
Создание собственного отчета по активности пользователей в WordPress — задача, вполне решаемая с базовыми знаниями PHP и WordPress API. Вы можете комбинировать собственный код и готовые плагины, такие как WP Activity Log или Simple History, для более глубокого анализа.
Главное — четко определить, какие данные вам нужны, и выбрать оптимальный способ их сбора и отображения.