Как создать автоматический отчет по заказам WooCommerce с помощью PHP

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

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

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

Такой отчет можно отправлять по почте, сохранять в файл CSV или отображать на отдельной странице в админке.

Подготовка и основные шаги создания отчета

Для создания отчета нам понадобится:

  • Подключиться к базе данных WordPress и получить данные заказов.
  • Использовать класс WC_Order для работы с заказами.
  • Сформировать удобный формат отчета (CSV, HTML таблица и т.д.).
  • Добавить возможность запуска отчета по расписанию с помощью WP-Cron.

Далее подробно рассмотрим каждый шаг.

Получение заказов с помощью WP_Query и WC_Order

Для выборки заказов используем WP_Query с типом записи shop_order. Вот пример функции, которая получает все заказы за последние 7 дней:

function wporders_get_recent_orders() {
    $args = [
        'post_type' => 'shop_order',
        'post_status' => ['wc-completed', 'wc-processing'],
        'date_query' => [
            [
                'after' => '7 days ago',
                'inclusive' => true,
            ],
        ],
        'posts_per_page' => -1,
    ];
    $query = new WP_Query($args);
    return $query->posts;
}

Далее можно пройтись по полученным заказам и получить нужные поля:

function wporders_generate_report_data() {
    $orders = wporders_get_recent_orders();
    $report = [];
    foreach ($orders as $order_post) {
        $order = wc_get_order($order_post->ID);
        $report[] = [
            'ID' => $order->get_id(),
            'Дата' => $order->get_date_created()->date('Y-m-d H:i'),
            'Статус' => $order->get_status(),
            'Клиент' => $order->get_billing_first_name() . ' ' . $order->get_billing_last_name(),
            'Сумма' => $order->get_total(),
        ];
    }
    return $report;
}

Формирование CSV отчета

Часто удобнее экспортировать отчет в CSV для импорта в Excel или Google Sheets. Для этого напишем функцию, которая преобразует массив данных в CSV строку:

function wporders_array_to_csv(array $data) {
    if (empty($data)) {
        return '';
    }
    ob_start();
    $df = fopen('php://output', 'w');
    fputcsv($df, array_keys(reset($data)));
    foreach ($data as $row) {
        fputcsv($df, $row);
    }
    fclose($df);
    return ob_get_clean();
}

Объединим все вместе:

function wporders_generate_csv_report() {
    $report_data = wporders_generate_report_data();
    return wporders_array_to_csv($report_data);
}

Автоматизация отчета с помощью WP-Cron

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

Регистрация крона:

add_action('wporders_daily_report_event', 'wporders_send_daily_report');

function wporders_schedule_daily_report() {
    if (!wp_next_scheduled('wporders_daily_report_event')) {
        wp_schedule_event(strtotime('08:00:00'), 'daily', 'wporders_daily_report_event');
    }
}
add_action('wp', 'wporders_schedule_daily_report');

Функция отправки письма с отчетом:

function wporders_send_daily_report() {
    $csv = wporders_generate_csv_report();
    $to = get_option('admin_email');
    $subject = 'Ежедневный отчет по заказам WooCommerce';
    $headers = ['Content-Type: text/plain; charset=UTF-8'];
    $attachments = [];

    // Сохраним CSV во временный файл
    $upload_dir = wp_upload_dir();
    $file_path = $upload_dir['basedir'] . '/wporders_report_' . date('Y-m-d') . '.csv';
    file_put_contents($file_path, $csv);
    $attachments[] = $file_path;

    wp_mail($to, $subject, 'Во вложении ежедневный отчет по заказам.', $headers, $attachments);

    // Удаляем временный файл
    unlink($file_path);
}

Интеграция с плагинами WPShop

Для расширенной отчетности можно использовать плагин Expert Review, который позволяет собирать отзывы и рейтинги к заказам и товарам. Эти данные можно добавить в отчет для анализа.

Также полезен ABC Pagination для удобного отображения отчетов в админке с постраничной навигацией.

Выводы и рекомендации

Создание автоматического отчета по заказам WooCommerce с помощью PHP — задача вполне решаемая даже без сторонних плагинов. Главное — правильно настроить выборку данных и формат отчета.

Используйте WP-Cron для запуска отчетов в удобное время и отправляйте их на email или сохраняйте в файловой системе.

Для расширения функционала можно интегрировать сторонние плагины из каталога WPSHOP, которые добавят новые возможности по анализу заказов и отзывам.

Автоматический запрос статуса заказа WooCommerce через AJAX
22.03.2026
Добавление пользовательского поля в форму оформления заказа WooCommerce без плагинов
24.12.2025
Как создать настройки плагина в WordPress: подробное руководство
30.11.2025
Создание автоматических заказов в WordPress без WooCommerce
19.01.2026
Оптимизация заказов в WordPress WooCommerce: практические советы и примеры кода
01.11.2025