Автоматизация создания отчёта о продавцах в WordPress с примерами кода

|

Зачем автоматизировать отчёты о продавцах в WordPress

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

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

Создание кастомного запроса для сбора данных о продавцах

В первую очередь нужно получить необходимые данные. Предположим, что на сайте используется WooCommerce, а продавцы — это пользователи с определённой ролью (например, 'seller'). Нам нужны продажи, совершённые каждым продавцом, и суммарная выручка.

Для этого можно использовать WP_Query и SQL-запросы к таблицам WooCommerce. Пример функции, которая собирает данные по продажам:

function wpbusiness_get_sellers_report_data() {
    global $wpdb;
    $seller_role = 'seller';

    // Получаем всех пользователей с ролью продавца
    $sellers = get_users(array('role' => $seller_role));
    $report = array();

    foreach ($sellers as $seller) {
        // Запрос к базе для подсчёта заказов и суммы продаж
        $orders_count = $wpdb->get_var($wpdb->prepare(
            "SELECT COUNT(DISTINCT p.ID) FROM {$wpdb->prefix}posts p
             INNER JOIN {$wpdb->prefix}woocommerce_order_items oi ON p.ID = oi.order_id
             INNER JOIN {$wpdb->prefix}woocommerce_order_itemmeta oim ON oi.order_item_id = oim.order_item_id
             WHERE p.post_type = 'shop_order'
             AND p.post_status IN ('wc-completed','wc-processing')
             AND oim.meta_key = '_seller_id' AND oim.meta_value = %d",
             $seller->ID
        ));

        $total_sales = $wpdb->get_var($wpdb->prepare(
            "SELECT SUM(meta_value) FROM {$wpdb->prefix}postmeta pm
             INNER JOIN {$wpdb->prefix}posts p ON pm.post_id = p.ID
             WHERE p.post_type = 'shop_order'
             AND p.post_status IN ('wc-completed','wc-processing')
             AND pm.meta_key = '_order_total'
             AND p.ID IN (
                SELECT DISTINCT order_id FROM {$wpdb->prefix}woocommerce_order_itemmeta
                WHERE meta_key = '_seller_id' AND meta_value = %d
             )",
             $seller->ID
        ));

        $report[] = array(
            'seller_id' => $seller->ID,
            'seller_name' => $seller->display_name,
            'orders_count' => (int) $orders_count,
            'total_sales' => (float) $total_sales
        );
    }

    return $report;
}

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

Создание шорткода для вывода отчёта продавцов на страницу

Чтобы вывести отчёт на странице сайта, удобно использовать шорткод. Ниже пример реализации шорткода [wpbusiness_sellers_report], который выводит таблицу с отчётом.

function wpbusiness_sellers_report_shortcode() {
    $report = wpbusiness_get_sellers_report_data();

    if (empty($report)) {
        return '<p>Отчёты о продавцах недоступны.</p>';
    }

    $output = '<table border="1" cellpadding="8" cellspacing="0">';
    $output .= '<thead><tr><th>Продавец</th><th>Количество заказов</th><th>Сумма продаж</th></tr></thead>';
    $output .= '<tbody>';

    foreach ($report as $row) {
        $output .= '<tr>';
        $output .= '<td>' . esc_html($row['seller_name']) . '</td>';
        $output .= '<td>' . intval($row['orders_count']) . '</td>';
        $output .= '<td>' . number_format($row['total_sales'], 2, ',', ' ') . ' ₽</td>';
        $output .= '</tr>';
    }

    $output .= '</tbody></table>';

    return $output;
}
add_shortcode('wpbusiness_sellers_report', 'wpbusiness_sellers_report_shortcode');

Добавьте этот код в файл functions.php вашей темы или создайте маленький плагин. После этого на любой странице можно вывести отчёт с помощью шорткода [wpbusiness_sellers_report].

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

Для бизнес-сайтов на WordPress, таких как wpbusiness.ru, полезно использовать специализированные плагины, например, Clearfy Pro. Этот плагин не только оптимизирует сайт, но и расширяет функционал управления данными, включая инструменты для отчётов и улучшенного анализа.

Clearfy Pro позволяет создавать собственные панели с метриками и интегрируется с популярными плагинами WooCommerce. Вы можете настроить автоматическую генерацию отчётов и их выгрузку в удобном формате, что значительно упрощает работу с большим количеством продавцов и заказов.

Для интеграции с вашим кастомным кодом можно использовать хуки и фильтры Clearfy Pro, расширяя возможности сбора и отображения данных, а также автоматизируя задачи по планированию отчётов.

Автоматизация отправки отчётов по email с WP Cron

Очень удобно, чтобы отчёты автоматически отправлялись на почту менеджерам или продавцам. Для этого можно использовать планировщик задач WP Cron. В примере ниже показано, как настроить ежедневную отправку отчёта о продажах.

function wpbusiness_send_daily_sellers_report() {
    $report = wpbusiness_get_sellers_report_data();

    if (empty($report)) {
        return;
    }

    $message = "Отчёт по продавцам за сегодня:\n\n";

    foreach ($report as $row) {
        $message .= sprintf("Продавец: %s, Заказы: %d, Сумма: %.2f ₽\n",
            $row['seller_name'],
            $row['orders_count'],
            $row['total_sales']
        );
    }

    wp_mail('manager@yourdomain.com', 'Ежедневный отчёт о продажах', $message);
}

// Регистрируем событие при активации плагина или темы
if (!wp_next_scheduled('wpbusiness_daily_report_event')) {
    wp_schedule_event(time(), 'daily', 'wpbusiness_daily_report_event');
}

add_action('wpbusiness_daily_report_event', 'wpbusiness_send_daily_sellers_report');

Этот код создаёт задачу, которая будет запускаться раз в сутки и отправлять отчёт на указанный email. Вы можете расширить функционал, добавив поддержку HTML-писем, вложений и индивидуальную рассылку продавцам.

Выводы и рекомендации по автоматизации отчётов

Автоматизация формирования и отправки отчётов о продавцах в WordPress — задача вполне решаемая с помощью кастомных функций и шорткодов. Для повышения надёжности и расширения функционала рекомендуем использовать проверенные плагины, например, Clearfy Pro.

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

Как создать динамические таблицы в WordPress с помощью шорткодов
29.11.2025
Как удалить пустые категории в WooCommerce с помощью кода
07.06.2026
Как автоматизировать управление виджетами в WordPress: практические решения
04.02.2026
Как автоматизировать управление ревизиями в WordPress для бизнес-сайтов
14.04.2026
Как автоматизировать обновление цен в WooCommerce по расписанию
26.04.2026
×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙