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

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

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

Ручное формирование отчетов — это всегда лишняя трата времени и риск ошибки. Особенно когда заказов становится много, а нужны подробные данные о продажах, статусах, клиентах и товарах. Автоматизация позволяет:

  • Экономить время на формирование отчетов;
  • Получать актуальную информацию в заданное время;
  • Минимизировать ошибки при сборе данных;
  • Легко интегрировать отчеты в бизнес-процессы.

Далее рассмотрим, как это можно реализовать на практике.

Как получить данные заказов из WordPress (WooCommerce)

Самый популярный способ работы с заказами в WordPress — через плагин WooCommerce. Заказы хранятся в custom post type shop_order. Чтобы получить список заказов, можно использовать WP_Query или WC API.

Пример запроса заказов с помощью WP_Query

function wporder_get_orders_report() {
    $args = [
        'post_type' => 'shop_order',
        'post_status' => ['wc-completed', 'wc-processing'],
        'posts_per_page' => -1,
        'date_query' => [
            [
                'after' => '30 days ago',
            ],
        ],
    ];

    $query = new WP_Query($args);
    $orders_data = [];

    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post();
            $order = wc_get_order(get_the_ID());
            $orders_data[] = [
                'id' => $order->get_id(),
                'date' => $order->get_date_created()->date('Y-m-d'),
                'total' => $order->get_total(),
                'status' => $order->get_status(),
                'customer' => $order->get_billing_email(),
            ];
        }
        wp_reset_postdata();
    }

    return $orders_data;
}

Этот код получает все заказы за последние 30 дней со статусами «завершен» и «в обработке» и формирует массив с нужными данными.

Форматирование отчета и экспорт в CSV

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

function wporder_export_orders_csv() {
    if (!current_user_can('manage_woocommerce')) {
        wp_die('Доступ запрещен');
    }

    $orders = wporder_get_orders_report();

    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename=orders_report.csv');

    $output = fopen('php://output', 'w');
    fputcsv($output, ['ID заказа', 'Дата', 'Сумма', 'Статус', 'Email клиента']);

    foreach ($orders as $order) {
        fputcsv($output, [$order['id'], $order['date'], $order['total'], $order['status'], $order['customer']]);
    }

    fclose($output);
    exit();
}

Для удобства можно добавить вызов этой функции по определенному URL или через кнопку в админке.

Автоматическая отправка отчетов по email

Чтобы получать отчеты без лишних действий, можно настроить автоматическую отправку CSV-отчета на почту с помощью WP Cron.

Добавление cron-задачи

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

Обработчик отправки почты

function wporder_send_daily_report() {
    $orders = wporder_get_orders_report();

    ob_start();
    $output = fopen('php://output', 'w');
    fputcsv($output, ['ID заказа', 'Дата', 'Сумма', 'Статус', 'Email клиента']);

    foreach ($orders as $order) {
        fputcsv($output, [$order['id'], $order['date'], $order['total'], $order['status'], $order['customer']]);
    }

    fclose($output);
    $csv = ob_get_clean();

    $upload_dir = wp_upload_dir();
    $file_path = $upload_dir['basedir'] . '/orders_report.csv';
    file_put_contents($file_path, $csv);

    $to = get_option('admin_email');
    $subject = 'Ежедневный отчет по заказам';
    $body = 'В приложении вы найдете отчет по заказам за последние 30 дней.';
    $headers = [];
    $attachments = [$file_path];

    wp_mail($to, $subject, $body, $headers, $attachments);
}
add_action('wporder_send_daily_report', 'wporder_send_daily_report');

Теперь каждый день администратор будет получать актуальный отчет на почту.

Полезные плагины для расширения отчетности в WordPress

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

  • Clearfy Pro — помогает оптимизировать WooCommerce и улучшить работу с заказами;
  • Expert Review — расширяет возможности сбора отзывов и анализа клиентов;
  • ABC Pagination — улучшает навигацию по спискам заказов в админке.

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

Советы по безопасности и производительности при работе с отчетами

При работе с данными заказов важно соблюдать безопасность и не нагружать сервер:

  • Ограничивайте доступ к функциям генерации отчетов по правам пользователей;
  • Используйте WP Cron для отложенных задач, чтобы не тормозить сайт;
  • При больших объемах данных формируйте отчеты пакетами или используйте внешние BI-системы;
  • Регулярно очищайте старые файлы отчетов и временные данные.

Правильная архитектура кода и тестирование помогут избежать проблем при масштабировании.

Заключение

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

Автоматический экспорт заказов WordPress в Google Sheets
27.01.2026
Автоматическое создание заказов через REST API в WordPress
15.02.2026
Создание персонализированного виджета WordPress
01.12.2025
Автоматическое создание задач и напоминаний в WordPress для управления заказами
15.03.2026
Автоматическое создание и отправка PDF счетов в WordPress при оформлении заказа
02.03.2026