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

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

Почему важно автоматизировать отчеты по продажам в WooCommerce

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

  • Экономить время на подготовку данных
  • Получать актуальные данные без задержек
  • Настраивать отчеты под конкретные задачи
  • Интегрировать отчеты с внешними системами и рассылками

В WooCommerce уже есть базовые отчеты, но они не всегда удобны для индивидуальных нужд. Ниже мы рассмотрим, как создать собственный отчет с кастомными метриками и отправлять его автоматически.

Создание кастомного отчета по продажам на PHP

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

Пример функции для получения суммарных продаж и количества заказов за последний месяц:

function wpsell_get_monthly_sales_report() {
    $args = array(
        'limit' => -1,
        'status' => array('completed', 'processing'),
        'date_created' => '>' . ( new WC_DateTime( '-30 days' ) )->format( 'Y-m-d H:i:s' ),
    );

    $orders = wc_get_orders( $args );

    $total_sales = 0;
    $total_orders = count($orders);

    foreach ( $orders as $order ) {
        $total_sales += $order->get_total();
    }

    return array(
        'total_sales' => $total_sales,
        'total_orders' => $total_orders,
    );
}

Эта функция вытягивает заказы со статусом «завершен» и «обрабатывается» за последние 30 дней, подсчитывает общую сумму и количество.

Вывод отчета в админке WordPress

Чтобы сделать отчет доступным в админке, добавим пункт меню и страницу с результатами:

function wpsell_add_sales_report_menu() {
    add_menu_page(
        'Отчет по продажам',
        'Отчет по продажам',
        'manage_woocommerce',
        'wpsell-sales-report',
        'wpsell_render_sales_report_page'
    );
}
add_action('admin_menu', 'wpsell_add_sales_report_menu');

function wpsell_render_sales_report_page() {
    $report = wpsell_get_monthly_sales_report();
    echo '<h1>Отчет по продажам за последний месяц</h1>';
    echo '<p>Общая сумма продаж: <strong>' . wc_price($report['total_sales']) . '</strong></p>';
    echo '<p>Количество заказов: <strong>' . $report['total_orders'] . '</strong></p>';
}

Теперь в админке появится раздел «Отчет по продажам» с базовой статистикой.

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

Отчеты полезно отправлять ответственным лицам по расписанию. Для этого можно использовать WP-Cron.

Пример кода для еженедельной отправки отчета:

// Планируем событие при активации плагина или темы
function wpsell_schedule_sales_report_email() {
    if ( ! wp_next_scheduled( 'wpsell_send_sales_report_event' ) ) {
        wp_schedule_event( time(), 'weekly', 'wpsell_send_sales_report_event' );
    }
}
register_activation_hook( __FILE__, 'wpsell_schedule_sales_report_email' );

// Удаляем при деактивации
function wpsell_unschedule_sales_report_email() {
    wp_clear_scheduled_hook( 'wpsell_send_sales_report_event' );
}
register_deactivation_hook( __FILE__, 'wpsell_unschedule_sales_report_email' );

// Обработчик события
add_action( 'wpsell_send_sales_report_event', 'wpsell_send_sales_report_email' );

function wpsell_send_sales_report_email() {
    $report = wpsell_get_monthly_sales_report();
    $to = 'manager@example.com';
    $subject = 'Еженедельный отчет по продажам WooCommerce';
    $message = "Отчет по продажам за последний месяц:\n";
    $message .= "Общая сумма продаж: " . wc_price($report['total_sales']) . "\n";
    $message .= "Количество заказов: " . $report['total_orders'] . "\n";

    wp_mail( $to, $subject, $message );
}

Таким образом, менеджер будет получать отчет автоматически каждую неделю.

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

Если нужно быстро получить расширенные возможности, можно использовать плагины. Например:

  • WooCommerce Customer / Order / Coupon Export — экспорт заказов и клиентов в CSV с гибкими настройками.
  • Advanced WooCommerce Reporting — графики и табличные отчеты с фильтрами.
  • Clearfy Pro — оптимизация сайта и расширенные настройки WooCommerce, включая аналитику.

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

Практические советы по оптимизации отчетов WooCommerce

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

  • Использовать пагинацию и фильтры для выборки данных
  • Кешировать результаты запросов с помощью Transients API
  • Оптимизировать запросы через индексацию базы данных
  • Избегать тяжелых операций в WP-Cron, делая их асинхронно

Например, для кеширования результата функции wpsell_get_monthly_sales_report() можно использовать:

function wpsell_get_monthly_sales_report() {
    $cache_key = 'wpsell_monthly_sales_report';
    $cached = get_transient($cache_key);
    if ($cached !== false) {
        return $cached;
    }

    $args = array(
        'limit' => -1,
        'status' => array('completed', 'processing'),
        'date_created' => '>' . ( new WC_DateTime( '-30 days' ) )->format( 'Y-m-d H:i:s' ),
    );

    $orders = wc_get_orders( $args );

    $total_sales = 0;
    $total_orders = count($orders);

    foreach ( $orders as $order ) {
        $total_sales += $order->get_total();
    }

    $result = array(
        'total_sales' => $total_sales,
        'total_orders' => $total_orders,
    );

    set_transient($cache_key, $result, 3600); // кеш на 1 час

    return $result;
}

Это значительно снизит нагрузку при частом обращении к отчету.

Вывод

Автоматизация отчетов WooCommerce — задача вполне решаемая своими силами, если знать базовые принципы работы с заказами и WP-Cron. В статье мы показали, как создать простой отчет, вывести его в админке, отправлять по email и оптимизировать работу через кеширование. Дополнительно можно использовать готовые плагины для расширенной аналитики.

Если хотите узнать больше о полезных инструментах и плагинах для WooCommerce и WordPress, загляните на wpshop.ru.

WooCommerce: автоматическое удаление неактивных товаров по срокам
25.06.2026
Как создать автоматический импорт изображений в WordPress
16.04.2026
Как добавить вывод стоимости отсутствующих товаров в корзине WooCommerce
25.05.2026
Автоматическое создание отчетов по продажам WooCommerce с примерами кода
18.02.2026
WooCommerce для российских продавцов: настройка платежей и фискализации
07.06.2026

Совсем скоро здесь заработает сайт о вордпресс. И будет он связан с продажами, магазинами или чем-то таким.