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

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

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

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

Чаще всего такие отчеты отправляются на электронную почту, но можно использовать и другие каналы, например Slack или Telegram, через API.

Настройка автоматической отправки отчетов через wp_cron

Что такое wp_cron и как он работает

WordPress имеет встроенную систему планировщика задач — wp_cron. Она позволяет запускать пользовательские функции по расписанию. Для автоматической отправки отчетов мы можем написать функцию, которая формирует отчет и отправляет его на email, а затем зарегистрировать её в расписании.

Пример кода для wp5.ru: автоматическая отправка отчета о новых пользователях

function wp5_send_new_users_report() {
    global $wpdb;
    
    // Получаем пользователей, зарегистрированных за последний день
    $date = date('Y-m-d H:i:s', strtotime('-1 day'));
    $users = $wpdb->get_results($wpdb->prepare(
        "SELECT user_login, user_email, user_registered FROM $wpdb->users WHERE user_registered > %s",
        $date
    ));

    if (empty($users)) {
        return; // Нет новых пользователей
    }

    $message = "Отчет по новым пользователям за последние 24 часа:\n\n";

    foreach ($users as $user) {
        $message .= "Логин: {$user->user_login}, Email: {$user->user_email}, Зарегистрирован: {$user->user_registered}\n";
    }

    wp_mail('admin@wp5.ru', 'Отчет новых пользователей', $message);
}

// Регистрируем задачу
function wp5_schedule_reports() {
    if (!wp_next_scheduled('wp5_daily_new_users_report')) {
        wp_schedule_event(time(), 'daily', 'wp5_daily_new_users_report');
    }
}
add_action('wp', 'wp5_schedule_reports');
add_action('wp5_daily_new_users_report', 'wp5_send_new_users_report');

// Очистка при деактивации плагина
function wp5_deactivate_report_schedule() {
    $timestamp = wp_next_scheduled('wp5_daily_new_users_report');
    if ($timestamp) {
        wp_unschedule_event($timestamp, 'wp5_daily_new_users_report');
    }
}
register_deactivation_hook(__FILE__, 'wp5_deactivate_report_schedule');

В этом примере мы ежедневно отправляем письмо с информацией о новых пользователях за последние 24 часа. Код можно адаптировать под любые данные.

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

Если вы хотите обойтись без кода, можно использовать плагины. Вот несколько полезных вариантов:

  • WP Crontrol — позволяет управлять задачами wp_cron из админки, удобно для отладки.
  • Report Builder for WP — строит отчеты по заказам, пользователям и другим данным с возможностью отправки по email.
  • Expert Review — плагин для сбора и анализа отзывов, умеет создавать отчеты и уведомления.

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

Как отправлять более сложные отчеты: CSV и вложения

Для удобства анализа данные часто отправляют в виде файлов CSV. Рассмотрим, как добавить вложение с CSV-файлом в письмо.

function wp5_send_csv_report() {
    global $wpdb;

    $users = $wpdb->get_results("SELECT user_login, user_email, user_registered FROM $wpdb->users");

    if (empty($users)) {
        return;
    }

    // Создаем CSV содержимое
    $csv = "Логин,Email,Дата регистрации\n";
    foreach ($users as $user) {
        $csv .= "{$user->user_login},{$user->user_email},{$user->user_registered}\n";
    }

    // Сохраняем во временный файл
    $upload_dir = wp_upload_dir();
    $file_path = $upload_dir['basedir'] . '/user_report.csv';
    file_put_contents($file_path, $csv);

    $to = 'admin@wp5.ru';
    $subject = 'CSV отчет пользователей';
    $message = 'Во вложении отчет по пользователям.';
    $headers = array('Content-Type: text/html; charset=UTF-8');
    $attachments = array($file_path);

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

    // Опционально удалить файл после отправки
    @unlink($file_path);
}

Вы можете запустить эту функцию по расписанию через wp_cron так же, как в предыдущем примере.

Советы по надежности и безопасности

При создании автоматических отчетов учитывайте следующие моменты:

  • Проверяйте объем данных, чтобы письма не были слишком тяжелыми.
  • Используйте защиту от повторного запуска — wp_cron может запускаться несколько раз подряд.
  • Не отправляйте конфиденциальные данные без шифрования.
  • Логируйте ошибки отправки, чтобы вовремя выявлять проблемы.
  • Если отправка писем проблематична, рассмотрите SMTP-плагины типа WP Mail SMTP.

Заключение

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

Для расширенных возможностей советуем ознакомиться с Expert Review и другими плагинами на wpshop.ru.

WooCommerce: как создать автозаполняемые поля в форме оформления заказа
24.05.2026
Как использовать хуки для расширения функционала WordPress
23.12.2025
Как создать автоматический заголовок для постов WordPress
28.02.2026
Как правильно кэшировать данные в WordPress для ускорения сайта
31.12.2025
Автоматическое изменение цены товара в WooCommerce при выборе разных атрибутов
20.05.2026