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

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

Почему автоматический отчет по заказам важен для бизнеса

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

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

При этом можно настроить отчеты с нужными фильтрами: по статусу заказа, дате, категории товаров и другим параметрам.

Основные шаги для создания автоматического отчета по заказам WooCommerce

Реализация автоматического отчета включает несколько этапов:

  1. Получение заказов из базы WooCommerce с нужными фильтрами;
  2. Форматирование данных в удобный вид (таблица HTML, CSV, PDF);
  3. Отправка отчета по email или сохранение в админке;
  4. Настройка автоматического запуска отчета по расписанию (WP-Cron).

Получение заказов с помощью WPOrders_get_orders_report()

Создадим функцию WPOrders_get_orders_report(), которая будет возвращать массив заказов за заданный период и статусы.

function WPOrders_get_orders_report($start_date, $end_date, $statuses = array('completed', 'processing')) {
    $args = array(
        'limit'        => -1, // Получить все заказы
        'status'       => $statuses,
        'date_created' => $start_date . '...' . $end_date,
        'return'       => 'objects',
    );
    $orders = wc_get_orders($args);
    return $orders;
}

Эта функция использует стандартный класс WooCommerce для получения заказов с фильтрами по дате и статусу.

Форматирование отчета в HTML таблицу

Для простоты создадим функцию, которая преобразует массив заказов в HTML таблицу с основными данными (номер заказа, дата, сумма, статус).

function WPOrders_format_report_html($orders) {
    $html = '<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse; width: 100%;">';
    $html .= '<thead><tr><th>Номер заказа</th><th>Дата</th><th>Сумма</th><th>Статус</th></tr></thead>';
    $html .= '<tbody>';
    foreach ($orders as $order) {
        $html .= '<tr>';
        $html .= '<td>' . $order->get_order_number() . '</td>';
        $html .= '<td>' . $order->get_date_created()->date('Y-m-d H:i') . '</td>';
        $html .= '<td>' . wc_price($order->get_total()) . '</td>';
        $html .= '<td>' . wc_get_order_status_name($order->get_status()) . '</td>';
        $html .= '</tr>';
    }
    $html .= '</tbody></table>';
    return $html;
}

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

Чтобы отчет формировался и отправлялся автоматически, настроим WP-Cron задачу. Создадим функцию, которая будет запускаться ежедневно и отправлять отчет на email администратора.

function WPOrders_send_daily_report() {
    $start_date = (new DateTime('yesterday'))->format('Y-m-d 00:00:00');
    $end_date = (new DateTime('yesterday'))->format('Y-m-d 23:59:59');
    $orders = WPOrders_get_orders_report($start_date, $end_date);
    if (empty($orders)) {
        return; // Нет заказов за вчера
    }
    $report_html = WPOrders_format_report_html($orders);
    $to = get_option('admin_email');
    $subject = 'Ежедневный отчет по заказам WooCommerce за ' . (new DateTime('yesterday'))->format('Y-m-d');
    $headers = array('Content-Type: text/html; charset=UTF-8');
    wp_mail($to, $subject, $report_html, $headers);
}

add_action('wporders_daily_report_event', 'WPOrders_send_daily_report');

if (!wp_next_scheduled('wporders_daily_report_event')) {
    wp_schedule_event(strtotime('00:10:00'), 'daily', 'wporders_daily_report_event');
}

Этот код регистрирует событие, которое будет запускаться каждый день в 00:10 и отправлять отчет за предыдущий день.

Использование плагинов для расширения возможностей отчетов

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

  • Clearfy Pro — оптимизация и расширение WooCommerce, включая улучшенные отчеты;
  • WPRemark — инструмент для создания и управления комментариями и отзывами, который можно адаптировать для отображения статистики заказов;
  • Плагины для экспорта заказов в CSV или Excel, которые позволяют создавать пользовательские шаблоны отчетов.

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

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

С помощью приведенного кода вы сможете:

  • Создавать точечные отчеты по заказам с нужными фильтрами;
  • Автоматически получать эти отчеты по email без дополнительных действий;
  • Дальше расширять функционал под свои задачи — например, добавлять данные по товарам, покупателям, платежам.

Такой подход экономит время и помогает контролировать продажи без лишних кликов в админке WooCommerce.

Создание автоматических уведомлений о статусах заказов WooCommerce
24.12.2025
Автоматизация управления заказами в WooCommerce с помощью hooks и фильтров
18.11.2025
Создание и использование shortcode в WordPress: подробное руководство с примерами кода
11.11.2025
Автоматическое сохранение заказов в WordPress без WooCommerce
31.01.2026
Как создать функционал подписки на новости в WordPress: практическое руководство
25.11.2025