Автоматическая отправка отчетов по email в WordPress: практическое руководство

В этой статье рассмотрим, как в WordPress реализовать автоматическую отправку отчетов по email. Такая задача часто встречается при администрировании сайтов, например, для регулярной рассылки данных о продажах, активности пользователей или статистике посещаемости. Мы разберем, как настроить wp_cron для запуска задачи по расписанию и сформировать кастомный отчет с отправкой на почту.

Почему нужна автоматическая отправка отчетов в WordPress

Ручная подготовка и отправка отчетов занимает время и может приводить к ошибкам. Автоматизация процесса позволяет:

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

В WordPress для запуска задач по расписанию используется встроенный механизм wp_cron, который мы и применим.

Настройка wp_cron для автоматической отправки отчетов

Для начала создадим в нашем плагине или файле functions.php функцию, которая будет формировать отчет и отправлять email. Затем зарегистрируем задачу в wp_cron.

Создаем функцию для формирования отчета и отправки email

В примере сделаем простой отчет с количеством опубликованных записей за все время.

function wpplugins_send_report_email() {
    $post_count = wp_count_posts()->publish;
    $to = 'admin@example.com'; // Замените на нужный email
    $subject = 'Ежедневный отчет сайта';
    $message = "Всего опубликованных записей на сайте: " . $post_count;
    $headers = array('Content-Type: text/html; charset=UTF-8');

    wp_mail($to, $subject, $message, $headers);
}

Регистрируем событие wp_cron

Добавим хук, который будет запускать нашу функцию ежедневно.

function wpplugins_schedule_daily_report() {
    if ( ! wp_next_scheduled( 'wpplugins_daily_report_event' ) ) {
        wp_schedule_event( time(), 'daily', 'wpplugins_daily_report_event' );
    }
}
add_action( 'wp', 'wpplugins_schedule_daily_report' );

add_action( 'wpplugins_daily_report_event', 'wpplugins_send_report_email' );

Здесь мы проверяем, запланировано ли событие, и если нет — создаем его с интервалом 'daily'. Затем привязываем нашу функцию отправки к событию.

Как добавить кастомный отчет с данными из базы

Для более сложных отчетов можно использовать WP_Query, SQL-запросы и формировать HTML-таблицы или CSV-файлы для вложения.

Пример отчета с таблицей последних 5 комментариев

function wpplugins_get_comments_report() {
    $comments = get_comments(array(
        'number' => 5,
        'status' => 'approve',
    ));

    $output = '<h2>Последние 5 комментариев</h2><table border="1" cellpadding="5">';
    $output .= '<tr><th>Автор</th><th>Комментарий</th><th>Дата</th></tr>';

    foreach ($comments as $comment) {
        $output .= '<tr>'
            . '<td>' . esc_html($comment->comment_author) . '</td>'
            . '<td>' . esc_html(wp_trim_words($comment->comment_content, 10)) . '</td>'
            . '<td>' . esc_html($comment->comment_date) . '</td>'
            . '</tr>';
    }

    $output .= '</table>';
    return $output;
}

function wpplugins_send_report_email() {
    $post_count = wp_count_posts()->publish;
    $comments_report = wpplugins_get_comments_report();

    $to = 'admin@example.com';
    $subject = 'Ежедневный отчет сайта';
    $message = "<h1>Статистика сайта</h1>"
        . "<p>Всего опубликованных записей: " . $post_count . "</p>"
        . $comments_report;

    $headers = array('Content-Type: text/html; charset=UTF-8');

    wp_mail($to, $subject, $message, $headers);
}

Управление задачами wp_cron и их отладка

Иногда встроенный wp_cron не срабатывает из-за отсутствия посещений сайта или других проблем. Для надежности можно настроить системный cron на сервере или использовать плагин для мониторинга и запуска задач.

Плагины для управления и отладки wp_cron

  • WP Crontrol — позволяет просматривать, редактировать и запускать задачи wp_cron вручную.
  • Advanced Cron Manager — расширенный менеджер cron задач с удобным интерфейсом.

Также рекомендуем проверять логи почты и сервера для выявления ошибок отправки email.

Заключение

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

Для расширения возможностей можно интегрировать отправку отчетов с популярными плагинами, например, WPRemark для аналитики комментариев или JournalX для ведения журналов активности.

Как удалить мета-данные при удалении записи в WordPress
26.01.2026
Как сделать автоматическое обновление плагинов WordPress без использования стандартного cron
18.01.2026
Автоматический импорт продуктов в WordPress с помощью WP All Import
09.01.2026
Как создать динамические шорткоды с использованием AJAX в WordPress
16.12.2025
Как создать автозаполняемое поле в WordPress с примерами кода
03.01.2026