Для владельцев интернет-магазинов на WordPress с WooCommerce очень важна возможность быстро получать отчеты по заказам для анализа продаж, контроля выполнения заказов и планирования запасов. В этой статье рассмотрим, как создать автоматический отчет по заказам WooCommerce с помощью PHP, который будет формироваться по расписанию и отправляться на email либо сохраняться в админке.
Почему автоматический отчет по заказам важен для бизнеса
Ручная генерация отчетов через админку WooCommerce часто отнимает много времени и не всегда позволяет быстро получить нужные данные в удобном формате. Автоматизация отчетов помогает:
- Экономить время менеджеров и владельцев магазина;
- Получать актуальные данные по заказам в удобном виде;
- Быстро реагировать на изменения в продажах и заказах;
- Поддерживать прозрачность и контроль за процессом обработки заказов.
При этом можно настроить отчеты с нужными фильтрами: по статусу заказа, дате, категории товаров и другим параметрам.
Основные шаги для создания автоматического отчета по заказам WooCommerce
Реализация автоматического отчета включает несколько этапов:
- Получение заказов из базы WooCommerce с нужными фильтрами;
- Форматирование данных в удобный вид (таблица HTML, CSV, PDF);
- Отправка отчета по email или сохранение в админке;
- Настройка автоматического запуска отчета по расписанию (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.