Для бизнес-сайтов на WordPress важна оперативная аналитика по продажам, особенно если сайт использует WooCommerce. Ручное создание отчётов занимает много времени, а автоматизация даёт точные и своевременные данные для принятия решений. В этой статье мы разберём, как создать автоматический отчёт по продажам с помощью кода и плагинов, а также интегрировать его с email-уведомлениями и CRON-задачами.
Почему важно автоматизировать отчёты по продажам в WordPress
Ручной сбор данных из административной панели WooCommerce или других плагинов аналитики неудобен и подвержен ошибкам. Автоматизация позволяет:
- Экономить время на подготовке отчётов;
- Получать отчёты регулярно без участия человека;
- Интегрировать отчёты с внешними системами и email-рассылками;
- Настраивать отчёты под конкретные бизнес-задачи.
Для автоматизации часто используют WP-крон и REST API, а также плагин Clearfy Pro, который помогает оптимизировать задачи и очистку базы данных.
Как получить данные о продажах из WooCommerce программно
WooCommerce хранит данные о заказах в кастомных типах записей shop_order. Чтобы получить продажи за определённый период, можно использовать WP_Query с параметрами:
$args = [
'post_type' => 'shop_order',
'post_status' => ['wc-completed', 'wc-processing'],
'date_query' => [
'after' => '30 days ago',
],
'posts_per_page' => -1,
];
$query = new WP_Query($args);
Далее нужно получить метаданные каждого заказа, чтобы посчитать сумму и количество товаров.
Пример функции wpbusiness_get_sales_report(), которая возвращает суммарные продажи и число заказов за месяц:
function wpbusiness_get_sales_report($days = 30) {
$args = [
'post_type' => 'shop_order',
'post_status' => ['wc-completed', 'wc-processing'],
'date_query' => [
'after' => "$days days ago",
],
'posts_per_page' => -1,
];
$query = new WP_Query($args);
$total_sales = 0;
$total_orders = $query->found_posts;
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
$order = wc_get_order(get_the_ID());
$total_sales += $order->get_total();
}
}
wp_reset_postdata();
return [
'total_sales' => $total_sales,
'total_orders' => $total_orders,
];
}
Автоматизация отчёта с помощью WP-Cron и отправка по email
Для регулярного создания отчётов удобно использовать WP-Cron, который запускает функцию по расписанию. Пример регистрации задачи и её реализации:
// Добавляем событие при активации плагина или темы
if (!wp_next_scheduled('wpbusiness_daily_sales_report')) {
wp_schedule_event(time(), 'daily', 'wpbusiness_daily_sales_report');
}
// Хук на событие
add_action('wpbusiness_daily_sales_report', 'wpbusiness_send_daily_report');
function wpbusiness_send_daily_report() {
$report = wpbusiness_get_sales_report(1); // за вчера
$subject = 'Ежедневный отчёт по продажам';
$message = "Продажи за вчера: " . number_format($report['total_sales'], 2) . " руб.\n" .
"Количество заказов: " . $report['total_orders'];
wp_mail('manager@example.com', $subject, $message);
}
Такой подход позволяет получать отчёты автоматически на email без дополнительного участия.
Использование плагина WPRemark для настройки email-уведомлений
Плагин WPRemark даёт удобный интерфейс для создания и управления email-уведомлениями, включая отправку кастомных писем с отчётами. Его можно использовать, чтобы расширить возможности отправки и форматирования сообщений.
Генерация отчёта в формате CSV с возможностью скачивания
Для удобства анализа и экспорта можно создавать CSV-файлы с данными продаж. Ниже пример функции, генерирующей CSV и выводящей его для скачивания:
function wpbusiness_generate_sales_csv() {
$report_data = [];
$args = [
'post_type' => 'shop_order',
'post_status' => ['wc-completed', 'wc-processing'],
'date_query' => [
'after' => '30 days ago',
],
'posts_per_page' => -1,
];
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
$order = wc_get_order(get_the_ID());
$report_data[] = [
'ID' => $order->get_id(),
'Date' => $order->get_date_created()->date('Y-m-d'),
'Total' => $order->get_total(),
'Customer' => $order->get_billing_first_name() . ' ' . $order->get_billing_last_name(),
];
}
}
wp_reset_postdata();
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=sales_report.csv');
$output = fopen('php://output', 'w');
fputcsv($output, ['ID', 'Дата', 'Сумма заказа', 'Покупатель']);
foreach ($report_data as $row) {
fputcsv($output, $row);
}
fclose($output);
exit;
}
Такую функцию можно привязать к кастомному endpoint или кнопке в админке.
Оптимизация и кеширование отчётов с помощью Clearfy Pro
При большом количестве заказов запросы могут замедлять сайт. Плагин Clearfy Pro поможет оптимизировать загрузку, отключить ненужные хуки и кешировать результаты запросов для ускорения генерации отчётов. Рекомендуется сохранить результат функции wpbusiness_get_sales_report() в transient с заданным временем жизни.
function wpbusiness_get_sales_report_cached($days = 30) {
$cache_key = 'wpbusiness_sales_report_' . $days;
$report = get_transient($cache_key);
if ( false === $report ) {
$report = wpbusiness_get_sales_report($days);
set_transient($cache_key, $report, HOUR_IN_SECONDS);
}
return $report;
}
Вывод отчёта на страницу админки WordPress
Для удобства можно добавить собственную страницу в меню администрирования с таблицей отчёта. Пример добавления меню и вывода данных:
add_action('admin_menu', function() {
add_menu_page('Отчёт по продажам', 'Отчёт по продажам', 'manage_woocommerce', 'wpbusiness-sales-report', 'wpbusiness_sales_report_page');
});
function wpbusiness_sales_report_page() {
$report = wpbusiness_get_sales_report_cached(30);
echo '<h1>Отчёт по продажам за 30 дней</h1>';
echo '<p>Общая сумма продаж: ' . number_format($report['total_sales'], 2) . ' руб.</p>';
echo '<p>Количество заказов: ' . $report['total_orders'] . '</p>';
}
Так администратор всегда сможет быстро получить актуальную информацию без лишних действий.
Заключение по автоматизации отчётов по продажам
Автоматизация отчётов — важный шаг для повышения эффективности управления бизнесом на WordPress. Используя возможности WooCommerce, WP-Cron, email-уведомлений и плагинов вроде WPRemark и Clearfy Pro, можно создать надёжную систему аналитики, которая будет работать без вашего постоянного участия.
Внедряя эти решения, вы обеспечите своевременный доступ к важной информации и сможете быстро реагировать на изменения в продажах, повышая прибыль и оптимизируя процессы.