Как автоматизировать создание отчёта по продажам в WordPress с примерами кода

|

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

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

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

Для автоматизации часто используют 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, можно создать надёжную систему аналитики, которая будет работать без вашего постоянного участия.

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

Оптимизация кода и загрузки в WordPress для бизнес-сайтов
09.11.2025
Как автоматизировать отзывы и оценки в WordPress для бизнес-сайта
14.01.2026
Как использовать хук WooCommerce 'woocommerce_order_status_changed' для автоматизации процессов
21.06.2026
Как автоматизировать отправку новых заказов WooCommerce в WhatsApp
10.05.2026
Как автоматизировать создание отчёта о продавцах в WordPress с примерами кода
30.12.2025
×
WPShop
партнерка без «но»!

До 3225₽ за каждую продажу

Подключиться к игре