Как добавить примечание к заказу в почтовые уведомления WooCommerce?
По умолчанию в CMS WordPress, а именно в его дополнении WooCommerce отсутствует возможность отправки примечания к заказу в почтовых уведомлениях. С одной стороны, это правильное решение, так как примечание заполняется не всегда, и для особо важной информации есть специально отведенные поля в форме оформления заказа (информация о клиенте, платежная информация и способы доставки и прочее), с другой стороны – это поле, которое дает свободу вашему клиенту, ведь если он не нашел необходимого поля, у него появился вопрос или важное уточнение/замечание, то все это он может написать как раз в этом поле.
Поскольку заказы из почтовых уведомлений (по моему личному опыту) многие магазины распечатывают для дальнейшей обработки, отсутствие необходимой и не менее важной информации в них может повлечь за собой появление недовольных клиентов, чьи интересы не были учтены.
Чтобы исправить эту ситуацию, сделаем следующее.
1. Подключитесь к вашему сайту по FTP.
2. Откройте файл functions.php, который находится в папке вашей темы.
3. В самый его низ вставьте функцию:
function customer_note_email_notifications($order, $sent_to_admin, $plain_text, $email) {
$type_email = array("new_order", "customer_on_hold_order", "customer_processing_order");
if(in_array($email->id, $type_email)) {
$customer_note = $order->get_customer_note();
if($customer_note == "") {
$customer_note = "Отсутствует";
}
echo <<<HTML
<h2>Примечание к заказу</h2>
<div style="margin-bottom: 40px;">
<table cellspacing="0" cellpadding="0" style="width: 100%; color: #636363; border: 2px solid #e5e5e5;" border="0">
<tr>
<td>
<p>{$customer_note}</p>
</td>
</tr>
</table>
</div>
HTML;
}
}
add_action("woocommerce_email_after_order_table", "customer_note_email_notifications", 10, 4);
Сохраните изменения и отправьте файл обратно на сайт. Установка закончена.
Необходимый вам блок (примечание к заказу) появится выше платежного адреса в новых почтовых уведомлениях.
Настройка функции
Если вы внимательно смотрели код, то в третьей его строке могли заметить переменную $type_email, содержащую в себе три типа e-mail уведомлений в виде массива (новый заказ, заказ на удержании и заказ в обработке), на которые будут распространяться описанная ранее функция.
Полный перечень стандартных типов e-mail уведомлений, относящихся к заказам, такой:
- Новый заказ – new_order
- Отменённый заказ – cancelled_order
- Неудавшийся заказ – failed_order
- Заказ на удержании – customer_on_hold_order
- Заказ в обработке – customer_processing_order
- Выполненный заказ – customer_completed_order
- Возвращённый заказ – customer_refunded_order
По необходимости дописываете или полностью изменяете содержимое переменной $type_email в коде на основе этого перечня, не меняя при этом ее типа.