Письма WooCommerce: как сделать свои шаблоны без поломок
Шаблоны писем WooCommerce можно менять тремя способами: настройками, хуками и копиями файлов в дочерней теме. Разбираем, какой вариант выбрать, где хранить изменения и почему обновление плагина не должно стирать вашу работу.

Шаблон письма WooCommerce лучше не редактировать прямо в папке плагина: после обновления все изменения исчезнут, а в заказах могут остаться старые тексты или сломанная разметка. Для WooCommerce 9.x и WordPress 6.x безопасная схема выглядит так: простые правки делаются в настройках, динамический текст — через хуки, а полноценная переделка письма — копированием шаблона в дочернюю тему с обязательной проверкой в тестовом заказе.
Что именно можно изменить
WooCommerce разделяет письмо на несколько частей. У каждого типа есть собственный файл шаблона, а общие элементы — шапка, подвал, стили и таблица заказа — подключаются отдельно. Поэтому замена заголовка письма и полная смена его структуры требуют разных подходов.
- Тема, заголовок и часть текста настраиваются в разделе WooCommerce → Настройки → Электронные письма.
- Дополнительный текст можно добавить хуком, не копируя файл.
- Разметку, порядок блоков и условные секции меняют через копию шаблона.
- Внешний вид письма проверяют не только в браузере, но и в почтовых клиентах: Outlook, Gmail и мобильных приложениях.
Сноска. Хук — точка расширения WordPress или WooCommerce, к которой подключают свою функцию. Хук позволяет изменить поведение без правки исходного кода плагина.
Файл шаблона отвечает за структуру письма, а хук — за добавляемое поведение. Не копируйте шаблон, если вам нужно вывести всего одну строку.
Три способа сделать свой шаблон
| Подход | Что меняется | Цена решения | Когда выбирать |
|---|---|---|---|
| Настройки WooCommerce | Тема, заголовок, текст, включение письма | Минимальный риск, но мало свободы | Нужно изменить формулировки без кода |
| Хуки в дочерней теме или плагине | Дополнительные блоки и условия | Нужно знать PHP и контекст хука | Надо добавить данные, не меняя каркас |
| Переопределение файла | Порядок блоков и HTML-разметка | Шаблон придётся проверять после обновлений WooCommerce | Стандартная структура письма не подходит |
Сначала проверьте настройки письма
Откройте WooCommerce → Настройки → Электронные письма и выберите нужное уведомление. Например, письмо покупателю после оформления заказа обычно называется Processing order. Внутри можно изменить тему, заголовок и дополнительный текст, если конкретное поле доступно для этого типа письма.
Этот способ не требует копирования файлов и переживает обновление WooCommerce. Но настройки не дают полного контроля над HTML: нельзя надёжно переставить таблицу заказа, добавить сложную условную секцию или изменить отдельный блок без кода.
Когда достаточно хуков
Хук подходит, если вы хотите добавить короткий блок перед деталями заказа, вывести инструкцию для определённого способа доставки или показать ссылку только для конкретного типа письма. Код лучше размещать в небольшом собственном плагине или в файле functions.php дочерней темы, а не в родительской теме.
Ниже пример для WooCommerce 9.x: в письмо покупателю о заказе добавляется инструкция после блока с деталями заказа. Это фрагмент, а не полный файл шаблона.
<?php
add_action( 'woocommerce_email_after_order_table', 'my_store_delivery_note', 20, 4 );
function my_store_delivery_note( $order, $sent_to_admin, $plain_text, $email ) {
if ( $sent_to_admin || ! is_object( $email ) ) {
return;
}
if ( 'customer_processing_order' !== $email->id ) {
return;
}
if ( $plain_text ) {
echo "Инструкция: проверьте адрес доставки в личном кабинете.\n";
return;
}
echo '<p><strong>Что дальше:</strong> проверьте адрес доставки в личном кабинете.</p>';
}
Здесь есть отдельная ветка для обычного HTML-письма и текстовой версии. Если выводить HTML без проверки $plain_text, текстовые письма получат теги вместо читаемой инструкции.
Что проверить после добавления хука
- Создайте тестовый заказ от обычного покупателя, а не из режима администратора.
- Убедитесь, что письмо имеет нужный идентификатор: у разных уведомлений он различается.
- Проверьте HTML- и plain-text-версии письма.
- Убедитесь, что блок не появляется в письмах администратору.
Как переопределить файл шаблона
Полное переопределение нужно, когда стандартный порядок блоков не подходит. Сначала включите дочернюю тему. Затем найдите исходный файл в папке WooCommerce:
wp-content/plugins/woocommerce/templates/emails/customer-processing-order.php
Скопируйте его в дочернюю тему, сохранив относительную структуру:
wp-content/themes/your-child-theme/woocommerce/emails/customer-processing-order.php
Имя файла выбирайте по конкретному уведомлению. Для письма о новом заказе администратору используется другой шаблон, поэтому нельзя копировать один файл и ожидать, что он изменит все письма. Точный список файлов находится в каталоге woocommerce/templates/emails установленной версии плагина.
Как менять копию без лишнего риска
Не переписывайте файл с нуля. Возьмите оригинал из той же версии WooCommerce, добавьте свой блок и сохраните переменные, которые уже используются шаблоном: объект заказа, заголовок письма и объект email. Так вы уменьшите риск потерять стандартную кнопку, адрес доставки или таблицу товаров.
Например, собственный блок можно вставить в копию шаблона перед закрывающим HTML-фрагментом:
<?php if ( $order->has_status( 'processing' ) ) : ?>
<p><strong>Заказ принят в обработку.</strong> Сохраните номер заказа для обращения в поддержку.</p>
<?php endif; ?>
Условие проверяет статус заказа перед выводом текста. Не вставляйте в шаблон непроверенные значения из пользовательских полей: для вывода динамических данных используйте экранирование WordPress и методы объекта заказа.
Что ломается чаще всего
Письмо осталось прежним
Самая частая причина — файл положили не в дочернюю тему или ошиблись в имени каталога. Путь должен начинаться с woocommerce/, а не с templates/. Проверьте также, что меняется именно тот тип письма, который отправляется при тестовом заказе.
WooCommerce показывает устаревший шаблон
На странице статуса WooCommerce может появиться предупреждение о файлах шаблонов, которые требуют обновления. Это означает, что структура оригинала изменилась. Сравните свою копию с файлом из текущей версии плагина и перенесите только собственные изменения. Не заменяйте файл вслепую: так вы потеряете кастомный код.
Появилась критическая ошибка WordPress
Обычно причина в синтаксической ошибке PHP или в обращении к переменной, которой нет в конкретном шаблоне. Временно отключите последний фрагмент, проверьте журнал ошибок хостинга и верните код после проверки. Делайте изменения сначала на копии сайта, а не на рабочем магазине.
В письме видны HTML-теги
Так бывает, когда HTML выводится в текстовую версию письма. Используйте отдельную ветку для $plain_text или выводите только обычный текст в этом режиме.
Шаблон правильный, но письмо не приходит
Шаблон отвечает за содержимое, а не за доставку. Если WooCommerce создал письмо, но оно не дошло, проверяйте почтовую отправку WordPress, журнал SMTP-сервиса, папку спама и DNS-записи домена. Переименование HTML-файла не исправит проблему с доставкой.
Когда какой способ выбирать
Если меняется только фраза или заголовок, начните с настроек уведомления. Если нужен один дополнительный блок с условием — используйте хук. Если требуется изменить порядок таблицы заказа, кнопок и адресов — создавайте копию шаблона.
Смешивать подходы можно, но контролируйте источник каждого изменения. Например, текст может приходить из настроек, дополнительная инструкция — из хука, а каркас письма — из копии файла. Чем больше таких слоёв, тем важнее документировать, где именно находится правка.
Что сделать после публикации
Создайте отдельный тестовый товар и оформите несколько заказов: с оплатой и без оплаты, с доставкой и самовывозом, с обычным и длинным названием товара. Проверьте письма в Gmail, Outlook и на мобильном устройстве. После обновления WooCommerce снова откройте страницу состояния системы и сравните переопределённые файлы с оригиналами текущей версии.
Инвалидация старых шаблонов и настройка SMTP — отдельные задачи. В этом материале важен следующий шаг: зафиксируйте список переопределённых файлов и добавьте проверку писем в чек-лист каждого обновления магазина.
Тест и проверочная: Быстрые ответы с объяснением, почему остальные варианты неверны
Спросить за 10 ₽Источники: WooCommerce: Template structure, WooCommerce Developer Documentation: Email templates
Частые вопросы
Можно ли изменить письмо WooCommerce без PHP?
Где хранить свои шаблоны WooCommerce?
Что делать, если у меня другая версия WooCommerce?
Почему добавленный текст не появляется в письме?
Можно ли редактировать шаблоны в родительской теме?
Как понять, что шаблон устарел после обновления WooCommerce?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.