wp-code.ru wordpress WP-Codе

Автоматизация создания и отправки отчёта о состоянии сайта WordPress по Email

Для владельцев и администраторов сайтов на WordPress важно регулярно контролировать состояние ресурса: доступность, обновления, использование ресурсов, статистику посещений и ошибки. Чтобы не тратить время на ручной мониторинг, можно автоматизировать процесс создания и отправки отчётов о состоянии сайта по электронной почте.

Зачем нужна автоматизация отчётов в WordPress

Регулярные отчёты позволяют своевременно выявлять проблемы с производительностью, безопасностью и содержимым сайта, а также информировать заинтересованных лиц (владельцев, команду поддержки) о текущем состоянии. Автоматизация экономит время и помогает избежать пропуска важных событий.

Типичные данные для включения в отчёт:

  • Версия WordPress и установленных плагинов
  • Статистика публикаций и комментариев
  • Ошибки PHP и логи сервера
  • Наличие обновлений
  • Использование ресурсов (память, CPU)
  • Статистика посещаемости (через API Google Analytics или плагины)

Выбор плагинов для мониторинга и отчётов

Плагины для сбора данных

Для сбора информации можно использовать плагины с расширенными возможностями:

  • WP Activity Log — отслеживает активность пользователей, изменения контента и системные события.
  • Query Monitor — помогает выявлять медленные запросы и ошибки.
  • WP Crontrol — для управления и просмотра запланированных задач WordPress.

Плагины для отправки почтовых уведомлений

Чтобы гарантировать доставку писем, лучше использовать SMTP-плагины:

  • WP Mail SMTP — настройка отправки почты через SMTP-серверы.
  • Easy WP SMTP — простая настройка SMTP с поддержкой различных сервисов.

Однако для создания кастомных отчётов и их автоматической отправки лучше написать собственный код с использованием wp_cron.

Пример реализации автоматического отчёта на WordPress с использованием wp_cron

Ниже показан пример кода, который собирает базовую информацию о сайте и отправляет её на указанный email раз в неделю.

<?php

// Функция для сбора данных отчёта
function wpcode_generate_site_report() {
    $report = '';
    // Версия WordPress
    $report .= "Версия WordPress: " . get_bloginfo('version') . "\n";
    
    // Количество опубликованных постов
    $post_count = wp_count_posts()->publish;
    $report .= "Опубликовано постов: " . $post_count . "\n";

    // Количество комментариев
    $comment_count = wp_count_comments()->approved;
    $report .= "Одобрено комментариев: " . $comment_count . "\n";

    // Проверка обновлений
    include_once( ABSPATH . 'wp-admin/includes/update.php' );
    $updates = get_core_updates();
    if ( ! empty( $updates ) ) {
        $report .= "Доступны обновления WordPress.\n";
    } else {
        $report .= "Обновления WordPress не найдены.\n";
    }
    
    // Использование памяти
    $memory_usage = size_format( memory_get_peak_usage( true ) );
    $report .= "Пиковое использование памяти: " . $memory_usage . "\n";

    return $report;
}

// Функция для отправки отчёта
function wpcode_send_site_report() {
    $to = get_option('admin_email'); // Отправляем администратору
    $subject = 'Отчёт о состоянии сайта ' . get_bloginfo('name');
    $message = wpcode_generate_site_report();
    
    wp_mail( $to, $subject, $message );
}

// Регистрация задачи в wp_cron
add_action( 'wpcode_weekly_site_report', 'wpcode_send_site_report' );

// Планирование cron-задачи при активации темы или плагина
function wpcode_schedule_report_event() {
    if ( ! wp_next_scheduled( 'wpcode_weekly_site_report' ) ) {
        wp_schedule_event( time(), 'weekly', 'wpcode_weekly_site_report' );
    }
}
add_action( 'wp', 'wpcode_schedule_report_event' );

// Очистка cron-задачи при деактивации
function wpcode_clear_report_event() {
    $timestamp = wp_next_scheduled( 'wpcode_weekly_site_report' );
    if ( $timestamp ) {
        wp_unschedule_event( $timestamp, 'wpcode_weekly_site_report' );
    }
}
// Для плагина использовать register_deactivation_hook
// Для темы можно добавить хук deactivation
?>

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

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

Интеграция с Google Analytics

Для добавления данных по трафику можно использовать Google Analytics API с OAuth 2.0. Это позволит получать посещаемость, источники трафика и поведение пользователей.

Например, можно использовать библиотеку Google API PHP Client для запросов к Analytics Reporting API.

Добавление логов ошибок и безопасности

Чтобы включить ошибки PHP в отчёт, можно прочитать файл debug.log (если включён WP_DEBUG_LOG) и фильтровать последние записи. Также полезно включить в отчёт информацию о попытках взлома и активности безопасности через плагины, например, Wordfence.

Использование плагина WPRemark для формирования отчетов

Плагин WPRemark позволяет создавать отчёты и отправлять их автоматически, интегрируя статистику и кастомные данные, что может значительно упростить задачу.

Заключение

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

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше