Вопрос или проблема
Привет, ребята! Надеюсь, у вас все хорошо. У нас есть клиент, который хотел получать PDF-счет-фактуру на свою электронную почту, когда пользователь делает заказ. Мы справились с этим, установив этот плагин:
https://wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/
Теперь клиент хочет то же самое, но в формате CSV, по сути, они хотят, чтобы детали каждого заказа отправлялись по электронной почте за каждый заказ. У вас есть идеи, как этого добиться? Я провел много часов в поисках решения.
Заранее спасибо.
Ответ или решение
Чтобы создать CSV-файл с деталями заказа в WooCommerce и отправить его по электронной почте после оформления заказа, вы можете использовать сочетание кода и доступных плагинов. В этом ответе я опишу, как вы можете это реализовать, начиная с установки плагина до написания пользовательского кода.
Шаг 1: Установка плагина
Хотя для создания CSV-файлов можно использовать собственный код, существует несколько плагинов, которые могут упростить процесс. Я рекомендую использовать плагин "WooCommerce Order Export" или аналогичные. Эти плагины позволяют экспортировать заказы в формате CSV.
- Перейдите в раздел администрирования вашего WordPress-сайта.
- Перейдите в "Плагины" → "Добавить новый".
- Поиск по запросу "WooCommerce Order Export" и установите подходящий плагин.
- Активируйте плагин после установки.
Шаг 2: Настройка плагина
- После активации плагина найдите его настройки в меню WooCommerce.
- Настройте параметры экспорта так, чтобы они соответствовали вашим требованиям: укажите необходимые поля (имя клиента, адрес, товары, цена и т. д.).
- Убедитесь, что у вас есть возможность отправлять экспортированные файлы по электронной почте.
Шаг 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. Если у вас возникнут дополнительные вопросы или потребуется помощь в настройках, не стесняйтесь обращаться за помощью!