Диагностика задачи: зачем менять шаблон письма о подтверждении заказа в WooCommerce
По умолчанию WooCommerce использует стандартные шаблоны писем, которые не всегда соответствуют фирменному стилю или требованиям бизнеса. Изменение шаблона письма подтверждения заказа позволяет добавить уникальный дизайн, дополнительную информацию или изменить структуру письма, что улучшит коммуникацию с клиентами.
Где находятся шаблоны писем в WooCommerce
Все шаблоны писем расположены в папке плагина: woocommerce/templates/emails/. Например, шаблон письма подтверждения заказа — customer-processing-order.php.
Чтобы не потерять изменения при обновлении плагина, нужно скопировать нужный шаблон в папку вашей темы:
your-theme/woocommerce/emails/customer-processing-order.phpПошаговое изменение шаблона письма о подтверждении заказа
1. Копирование шаблона в тему
Скопируйте файл customer-processing-order.php из папки WooCommerce в папку вашей темы по пути your-theme/woocommerce/emails/. Если папок нет, создайте их.
2. Правка шаблона
Откройте скопированный файл и внесите нужные изменения. Например, добавим приветствие с именем клиента и уточним информацию о доставке:
<?php
// Вставляем приветствие с именем покупателя
echo '<p>Здравствуйте, ' . esc_html( $order->get_billing_first_name() ) . '! Спасибо за ваш заказ.</p>';
// Добавим дополнительный блок с информацией о доставке
echo '<p>Ваш заказ будет доставлен по адресу: ' . esc_html( $order->get_shipping_address_1() ) . '</p>';
?>3. Добавление кастомного CSS
Для изменения стилей писем можно отредактировать файл email-styles.php или добавить inline стили в шаблон. Например, добавим стили к заголовку:
<style>
h1 {
color: #2a9d8f;
font-family: Arial, sans-serif;
}
</style>Проверка результата после внедрения изменений
Чтобы проверить как выглядит письмо после изменений:
- Откройте заказ в админке WooCommerce и измените его статус на «Обрабатывается» или «Выполняется» — это запустит отправку письма подтверждения заказа.
- Проверьте входящую почту клиента, чтобы убедиться, что шаблон обновился.
- Для локального тестирования можно использовать плагины типа
WP Mail Loggingдля просмотра отправленных писем.
Частые ошибки и как их исправить
- Не создал папку
woocommerce/emailsв теме — изменения не применятся, так как WooCommerce ищет шаблоны именно в этой папке. - Ошибки PHP в шаблоне — приведут к сбоям в отправке письма. Проверяйте синтаксис и используйте
error_logили WP_DEBUG. - Кэширование писем — может мешать видеть изменения. Отключите кэширование или очистите его.
- Отсутствие обязательных хуков — в шаблоне должны быть вызовы функций
do_action( 'woocommerce_email_header' )иdo_action( 'woocommerce_email_footer' )для корректного отображения шапки и подвала письма.
Альтернативные способы кастомизации писем WooCommerce
| Способ | Преимущества | Недостатки |
|---|---|---|
| Правка шаблонов в теме | Полный контроль над содержимым и стилями | Требует знаний PHP/HTML, сложно поддерживать при обновлениях темы |
| Использование хуков и фильтров WooCommerce | Можно изменять части письма без копирования шаблонов | Некоторые ограничения в дизайне, требует понимания хуков |
| Плагины для кастомизации писем (например, Email Customizer) | Удобный визуальный редактор, быстрое изменение дизайна | Ограничения по функционалу, возможны конфликты с темой |
Пример изменения части письма через хук
Вместо правки шаблона можно добавить дополнительный текст в письмо с помощью хука woocommerce_email_after_order_table:
add_action( 'woocommerce_email_after_order_table', 'add_custom_text_to_email', 10, 4 );
function add_custom_text_to_email( $order, $sent_to_admin, $plain_text, $email ) {
if ( $email->id === 'customer_processing_order' ) {
echo '<p>Спасибо, что выбрали наш магазин!</p>';
}
}Практические советы по безопасности и производительности
- Не включайте в письмо конфиденциальные данные, например, полные платежные реквизиты.
- Избегайте тяжелых изображений и сложного HTML — письма должны быстро загружаться в почтовых клиентах.
- Используйте функции WordPress для экранирования вывода (
esc_html,esc_attr) для предотвращения XSS-уязвимостей. - Проверяйте совместимость изменений с другими плагинами, которые влияют на email-рассылки.