Получите CSV-счет-фактуру при оформлении заказа пользователем в WooCommerce

Вопрос или проблема

Привет, ребята! Надеюсь, у вас все хорошо. У нас есть клиент, который хотел получать PDF-счет-фактуру на свою электронную почту, когда пользователь делает заказ. Мы справились с этим, установив этот плагин:
https://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/

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

Заранее спасибо.

Ответ или решение

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

Шаг 1: Установка плагина

Хотя для создания CSV-файлов можно использовать собственный код, существует несколько плагинов, которые могут упростить процесс. Я рекомендую использовать плагин "WooCommerce Order Export" или аналогичные. Эти плагины позволяют экспортировать заказы в формате CSV.

  1. Перейдите в раздел администрирования вашего WordPress-сайта.
  2. Перейдите в "Плагины" → "Добавить новый".
  3. Поиск по запросу "WooCommerce Order Export" и установите подходящий плагин.
  4. Активируйте плагин после установки.

Шаг 2: Настройка плагина

  1. После активации плагина найдите его настройки в меню WooCommerce.
  2. Настройте параметры экспорта так, чтобы они соответствовали вашим требованиям: укажите необходимые поля (имя клиента, адрес, товары, цена и т. д.).
  3. Убедитесь, что у вас есть возможность отправлять экспортированные файлы по электронной почте.

Шаг 3: Добавление пользовательского кода

Если вы хотите получить более кастомизированный подход, вы можете добавить следующий пользовательский код в файл functions.php вашей темы или создать отдельный плагин:

add_action( 'woocommerce_thankyou', 'send_csv_invoice', 10, 1 );

function send_csv_invoice( $order_id ) {
    $order = wc_get_order( $order_id );

    // Создание CSV-файла
    $csv_output = fopen('php://output', 'w');
    fputcsv($csv_output, array('Имя', 'Email', 'Товар', 'Количество', 'Цена'));

    // Получение данных заказа
    foreach ( $order->get_items() as $item_id => $item ) {
        fputcsv($csv_output, array(
            $order->get_billing_first_name() . ' ' . $order->get_billing_last_name(),
            $order->get_billing_email(),
            $item->get_name(),
            $item->get_quantity(),
            $item->get_total() 
        ));
    }

    fclose($csv_output);

    // Установка заголовков для отправки
    $to = $order->get_billing_email();
    $subject = 'Ваш заказ #' . $order_id;
    $body = 'Спасибо за ваш заказ! Прикреплен файл с деталями вашего заказа.';
    $headers = array('Content-Type: text/csv; charset=UTF-8', 'Content-Disposition: attachment; filename="invoice-' . $order_id . '.csv"');

    // Отправка email
    wp_mail( $to, $subject, $body, $headers, array( get_temp_dir() . 'invoice-' . $order_id . '.csv') );
}

Шаг 4: Тестирование

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

Заключение

Это решение позволяет вашему клиенту получать CSV-файлы с деталями заказа после каждой покупки в WooCommerce. Если у вас возникнут дополнительные вопросы или потребуется помощь в настройках, не стесняйтесь обращаться за помощью!

Оцените материал
Добавить комментарий

Капча загружается...