Ведение статистики просмотров страниц и активности пользователей — важная задача для сайтов на WordPress, особенно если речь идёт о магазинах, блогах или корпоративных порталах. В этой статье рассмотрим, как автоматизировать сбор и формирование отчётов по просмотрам и действиям пользователей, используя примеры кода и готовые решения.
Почему важно отслеживать просмотры и активность пользователей
Статистика помогает понимать поведение аудитории, выявлять популярные страницы и улучшать UX. Ручной сбор данных — трудоёмкий процесс, который можно автоматизировать с помощью PHP-кода и плагинов.
Отчёты можно использовать для:
- Оптимизации контента под реальные интересы посетителей;
- Анализа эффективности рекламных кампаний;
- Повышения конверсии в интернет-магазинах;
- Мониторинга активности зарегистрированных пользователей.
Использование плагинов для сбора статистики
Самый простой способ — воспользоваться готовыми плагинами. Рекомендуемые плагины:
- WP-PostViews — считает просмотры постов и страниц;
- Clearfy Pro — содержит расширенные возможности оптимизации и сбора статистики;
- Simple History — отслеживает действия пользователей в админке.
Однако, если нужны кастомные отчёты и интеграция с бизнес-логикой — лучше написать собственное решение.
Как разработать собственное решение для сбора просмотров
Первый шаг — это создать функцию, которая будет увеличивать счётчик просмотров при загрузке страницы. Для этого можно использовать мета-поля записей.
Функция для увеличения счётчика просмотров
function wporder_increment_post_views($post_id) {
$count = get_post_meta($post_id, '_wporder_post_views_count', true);
$count = $count ? intval($count) + 1 : 1;
update_post_meta($post_id, '_wporder_post_views_count', $count);
}
Вызываем эту функцию в хуке wp_head, чтобы считать просмотры каждой записи:
function wporder_track_post_views() {
if (is_singular()) {
global $post;
wporder_increment_post_views($post->ID);
}
}
add_action('wp_head', 'wporder_track_post_views');
Сбор активности зарегистрированных пользователей
Чтобы отслеживать действия пользователей (например, вход в систему, публикация комментариев, оформление заказов), используйте хуки WordPress и WooCommerce.
Пример: логирование входа пользователя
function wporder_log_user_login($user_login, $user) {
$user_id = $user->ID;
$time = current_time('mysql');
$log = "Пользователь ID {$user_id} вошёл в систему в {$time}";
// Сохраняем лог в файл или базу данных
error_log($log, 3, WP_CONTENT_DIR . '/user_activity.log');
}
add_action('wp_login', 'wporder_log_user_login', 10, 2);
Такой подход можно расширить, добавив запись в базу данных для последующего формирования отчётов.
Создание отчёта по просмотрам и активности
Для формирования удобных отчётов можно создать отдельную страницу в админке с таблицей и графиками. Для примера выведем список постов с количеством просмотров.
Вывод отчёта по просмотрам в админке
function wporder_add_report_page() {
add_menu_page(
'Отчёт по просмотрам',
'Отчёт просмотров',
'manage_options',
'wporder_views_report',
'wporder_render_report_page'
);
}
add_action('admin_menu', 'wporder_add_report_page');
function wporder_render_report_page() {
global $wpdb;
$posts = get_posts(array('numberposts' => 50, 'post_type' => 'post'));
echo '<h1>Отчёт по просмотрам постов</h1>';
echo '<table><thead><tr><th>ID</th><th>Заголовок</th><th>Просмотры</th></tr></thead><tbody>';
foreach ($posts as $post) {
$views = get_post_meta($post->ID, '_wporder_post_views_count', true) ?: 0;
echo "<tr><td>{$post->ID}</td><td>{$post->post_title}</td><td>{$views}</td></tr>";
}
echo '</tbody></table>';
}
Автоматическая отправка отчёта по email
Для удобства можно настроить автоматическую отправку отчёта администратору сайта по расписанию.
Пример функции для отправки email с отчётом
function wporder_send_views_report_email() {
$posts = get_posts(array('numberposts' => 50, 'post_type' => 'post'));
$message = "Отчёт по просмотрам постов:\n";
foreach ($posts as $post) {
$views = get_post_meta($post->ID, '_wporder_post_views_count', true) ?: 0;
$message .= "ID: {$post->ID}, Заголовок: {$post->post_title}, Просмотры: {$views}\n";
}
wp_mail(get_option('admin_email'), 'Еженедельный отчёт по просмотрам', $message);
}
// Планируем задачу на еженедельную отправку
if (!wp_next_scheduled('wporder_weekly_views_report')) {
wp_schedule_event(time(), 'weekly', 'wporder_weekly_views_report');
}
add_action('wporder_weekly_views_report', 'wporder_send_views_report_email');
Рекомендации по производительности и безопасности
При сборе просмотров и логировании активности нужно учитывать нагрузку на базу данных. Не стоит записывать данные при каждом просмотре без кеширования или отложенной записи.
Рекомендуется использовать transient API или внешние сервисы аналитики для крупных проектов.
Также следите за безопасностью: не храните в логах конфиденциальные данные, ограничивайте доступ к отчётам в админке только администраторам.
Выводы
Автоматизация создания отчётов по просмотрам и активности пользователей в WordPress помогает лучше понять аудиторию и улучшить сайт. Можно комбинировать плагины и собственный код для получения гибких решений, адаптированных под задачи проекта.
Если нужна более глубокая аналитика и интеграция, обратите внимание на расширенные плагины и сервисы, например WPRemark для расширенного анализа комментариев и активности.