wppartner.ru wordpress WP Partner

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

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

Почему важно вести учет активности пользователей в WordPress

Отслеживание действий пользователей помогает:

  • Понимать, какие страницы и записи наиболее популярны;
  • Отслеживать изменения контента и действия редакторов;
  • Обеспечивать безопасность сайта, контролируя подозрительную активность;
  • Анализировать поведение клиентов для улучшения UX и маркетинга.

Без учета активности сложно понять, что работает на сайте, а что нужно менять.

Использование плагинов для отчетов активности пользователей

Существует несколько надежных плагинов, которые помогут быстро организовать сбор данных и отображение отчетов:

1. WP Activity Log

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

Особенности:

  • Подробные логи событий с фильтрами;
  • Настраиваемые уведомления на email;
  • Интеграция с WooCommerce, bbPress и другими.

Скачать и узнать больше: WP Activity Log на WPSHOP

2. Simple History

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

  • Отслеживает изменения постов, пользовательские входы и ошибки;
  • Поддерживает сторонние плагины;
  • Простой интерфейс без лишних настроек.

Подробнее: Simple History на WPSHOP

Создание собственного решения для сбора активности

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

Создание таблицы для хранения логов

Добавим функцию для создания таблицы при активации плагина или темы:

function wppartner_create_activity_log_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'wppartner_activity_log';
    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE IF NOT EXISTS $table_name (
        id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
        user_id BIGINT(20) UNSIGNED NOT NULL,
        event_type VARCHAR(100) NOT NULL,
        event_data TEXT,
        event_time DATETIME DEFAULT CURRENT_TIMESTAMP,
        PRIMARY KEY  (id)
    ) $charset_collate;";

    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql );
}
register_activation_hook( __FILE__, 'wppartner_create_activity_log_table' );

Эта таблица будет хранить ID пользователя, тип события, дополнительные данные и время.

Логирование входа пользователя

Используем хук wp_login для записи события входа:

function wppartner_log_user_login( $user_login, $user ) {
    global $wpdb;
    $table_name = $wpdb->prefix . 'wppartner_activity_log';

    $wpdb->insert(
        $table_name,
        [
            'user_id' => $user->ID,
            'event_type' => 'login',
            'event_data' => 'Пользователь вошел под логином: ' . $user_login,
            'event_time' => current_time( 'mysql' )
        ]
    );
}
add_action( 'wp_login', 'wppartner_log_user_login', 10, 2 );

Логирование изменений постов

Отслеживаем публикацию и обновление записей через хук save_post:

function wppartner_log_post_changes( $post_id, $post, $update ) {
    if ( wp_is_post_revision( $post_id ) ) {
        return; // Игнорируем ревизии
    }

    global $wpdb;
    $table_name = $wpdb->prefix . 'wppartner_activity_log';
    $user_id = get_current_user_id();
    $action = $update ? 'обновлен' : 'создан';
    $event_data = sprintf('Пост ID %d был %s пользователем ID %d', $post_id, $action, $user_id);

    $wpdb->insert(
        $table_name,
        [
            'user_id' => $user_id,
            'event_type' => 'post_change',
            'event_data' => $event_data,
            'event_time' => current_time( 'mysql' )
        ]
    );
}
add_action( 'save_post', 'wppartner_log_post_changes', 10, 3 );

Отображение отчета активности в админке WordPress

Чтобы выводить собранные данные удобно, создадим страницу в меню админки с таблицей событий.

function wppartner_add_activity_log_page() {
    add_menu_page(
        'Отчет активности',
        'Активность пользователей',
        'manage_options',
        'wppartner-activity-log',
        'wppartner_render_activity_log_page',
        'dashicons-list-view',
        25
    );
}
add_action( 'admin_menu', 'wppartner_add_activity_log_page' );

function wppartner_render_activity_log_page() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'wppartner_activity_log';
    $logs = $wpdb->get_results( "SELECT * FROM $table_name ORDER BY event_time DESC LIMIT 100" );

    echo '<div class="wrap"><h1>Отчет активности пользователей</h1>';
    echo '<table class="widefat fixed"><thead><tr><th>ID</th><th>Пользователь</th><th>Тип события</th><th>Описание</th><th>Время</th></tr></thead><tbody>';

    foreach ( $logs as $log ) {
        $user_info = get_userdata( $log->user_id );
        $user_name = $user_info ? $user_info->user_login : 'Неизвестный';
        echo "<tr><td>{$log->id}</td><td>{$user_name}</td><td>{$log->event_type}</td><td>{$log->event_data}</td><td>{$log->event_time}</td></tr>";
    }

    echo '</tbody></table></div>';
}

Этот простой интерфейс позволяет просматривать последние 100 событий активности с основными данными.

Советы по улучшению и расширению отчетов активности

Для более продвинутого решения можно:

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

Также можно рассмотреть плагины из набора WPSHOP, например, Expert Review, которые помогают собирать отзывы и активность пользователей в удобном виде.

Заключение

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

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее