Автоматический экспорт заказов WooCommerce в CSV с примерами кода

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

Почему нужен автоматический экспорт заказов WooCommerce

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

  • Экспортировать новые заказы по расписанию без участия пользователя.
  • Формировать файлы в нужном формате с кастомными полями.
  • Отправлять отчеты ответственным сотрудникам или системам.
  • Интегрироваться с бухгалтерией, CRM и другими сервисами.

Рассмотрим несколько подходов к реализации.

Способ 1. Использование плагина WP All Export

Плагин WP All Export — мощное решение для экспорта любых данных WordPress, включая заказы WooCommerce. Он поддерживает автоматический экспорт по расписанию и гибкую настройку CSV.

Основные шаги:

  1. Установите и активируйте плагин.
  2. Создайте новый экспорт, выбрав тип данных «Заказы WooCommerce».
  3. Настройте поля для экспорта — стандартные и пользовательские.
  4. Включите расписание автоматического экспорта (например, ежедневно в полночь).
  5. Настройте доставку файла по email или сохранение на сервер.

Такой подход не требует программирования и подходит для большинства задач.

Способ 2. Собственный скрипт экспорта заказов WooCommerce в CSV

Если нужен более гибкий и легковесный вариант, можно написать собственный PHP-скрипт, который выгружает заказы и сохраняет файл на сервере или отправляет на почту. Ниже пример реализации.

Пример кода: автоматический экспорт новых заказов за сутки

add_action('wporders_export_orders_daily_event', 'wporders_export_orders_to_csv');

function wporders_export_orders_to_csv() {
    $args = array(
        'status' => array('completed', 'processing'),
        'date_created' => '>' . ( time() - DAY_IN_SECONDS ),
        'limit' => -1,
    );

    $orders = wc_get_orders($args);

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

    $filename = WP_CONTENT_DIR . '/uploads/orders_export_' . date('Y-m-d') . '.csv';
    $file = fopen($filename, 'w');

    // Заголовки CSV
    fputcsv($file, array('ID', 'Дата', 'Клиент', 'Email', 'Сумма', 'Статус'));

    foreach ($orders as $order) {
        fputcsv($file, array(
            $order->get_id(),
            $order->get_date_created()->date('Y-m-d H:i:s'),
            $order->get_billing_first_name() . ' ' . $order->get_billing_last_name(),
            $order->get_billing_email(),
            $order->get_total(),
            $order->get_status(),
        ));
    }

    fclose($file);

    // Отправка файла по email
    $to = get_option('admin_email');
    $subject = 'Экспорт заказов WooCommerce за ' . date('Y-m-d');
    $message = 'Во вложении файл с заказами за последние 24 часа.';
    $headers = array('Content-Type: text/html; charset=UTF-8');

    wp_mail($to, $subject, $message, $headers, array($filename));
}

// Создаем событие для cron
if (!wp_next_scheduled('wporders_export_orders_daily_event')) {
    wp_schedule_event(time(), 'daily', 'wporders_export_orders_daily_event');
}

Этот код регистрирует ежедневное событие, которое собирает заказы за последние сутки, формирует CSV и отправляет файл на email администратора сайта.

Объяснение кода

Функция wporders_export_orders_to_csv использует функцию wc_get_orders для выборки заказов с заданным статусом и датой создания. Затем данные записываются в CSV с помощью стандартных функций PHP. В конце файл отправляется на email с помощью wp_mail.

Расписание создается через wp_schedule_event, чтобы задача запускалась автоматически каждый день.

Способ 3. Использование WP-Cron и кастомных шорткодов для запуска экспорта вручную

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

Пример шорткода для экспорта

function wporders_export_orders_shortcode() {
    if (!current_user_can('manage_woocommerce')) {
        return 'Доступ запрещен';
    }

    wporders_export_orders_to_csv();

    $file_url = content_url('uploads/orders_export_' . date('Y-m-d') . '.csv');
    return '<a href="' . esc_url($file_url) . '" target="_blank">Скачать экспорт заказов за сегодня</a>';
}
add_shortcode('wporders_export_orders', 'wporders_export_orders_shortcode');

Добавьте шорткод [wporders_export_orders] на страницу, и пользователи с правами администратора смогут получить актуальный экспорт заказов по клику.

Рекомендации по работе с экспортом заказов WooCommerce

  • Всегда учитывайте защиту данных: не давайте доступ к экспорту неавторизованным пользователям.
  • Оптимизируйте выборку заказов, если их много, используя пагинацию или фильтры.
  • Используйте кастомные поля и метаданные, если нужно выгружать дополнительные данные.
  • При больших объемах данных рассмотрите использование внешних сервисов и очередей задач.
  • Для удобства добавьте в админку страницы с настройками экспорта.

Заключение

Автоматический экспорт заказов WooCommerce в CSV — важный инструмент для бизнес-аналитики и интеграции. Выбор решения зависит от задач и бюджета: от простого плагина WP All Export до собственного кода с WP-Cron и кастомными шорткодами. Код из статьи можно доработать под свои нужды и интегрировать с другими сервисами.

Если хотите расширить функционал сайта, советуем обратить внимание на Clearfy Pro — плагин для оптимизации и расширения WooCommerce, который упрощает работу с заказами и экспортом.

Как сделать удобный фильтрованный список заказов в WordPress без WooCommerce
31.01.2026
Как создать собственный REST API для WooCommerce в WordPress
21.11.2025
WooCommerce: как использовать кастомные метаданные для поиска и фильтров заказов
22.04.2026
Как отладить проблемы с заказами WooCommerce: пошаговое руководство и примеры кода
13.12.2025
Автоматическая отправка подтверждения заказа в WooCommerce
14.04.2026