Задать вопрос

Почтовый шаблон битрикс не работает?

Как добавить для других статусов заказа #ORDER_USER# ?
Он не работает, кроме пункта заказа Принят
  • Вопрос задан
  • 1243 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
AlexeyGfi
@AlexeyGfi
YouTube >>> Битриксоид из Колхоза
Вот, какие ключи предусмотрены в системе для почтового события по смене статуса:
$arFields = Array(
	"ORDER_ID" => (...),
	"ORDER_DATE" => (...),
	"ORDER_STATUS" => (...),
	"EMAIL" => (...),
	"ORDER_DESCRIPTION" => (...),
	"TEXT" => "",
	"SALE_EMAIL" => (...)
);


Среди них нет данных по пользователю, соответственно сделать в лоб (прописав в шаблонах почтовых типов ключ #ORDER_USER#) не получится.

Однако, при отправке почтового уведомления непосредственно про смену статуса среди прочих срабатывает событие
OnOrderStatusSendEmail, которому одним из параметров передаются поля — указатель на $arFields:

foreach(GetModuleEvents("sale", "OnOrderStatusSendEmail", true) as $arEvent)
	if (ExecuteModuleEventEx($arEvent, Array($ID, &$eventName, &$arFields, $arOrder["STATUS_ID"]))===false)
		$bSend = false;


Вы можете подписаться на это событие и например поступить так:
1. Добавляете в почтовый шаблон статуса ключ #ORDER_USER#
2. При реакции на событие формируете нужное значение для #ORDER_USER# и дополняете ним $arFields

Либо при перехвате события отправить свою версию почтового типа, из функции-реакции вернуть false и тогда пользователю уйдёт только письмо, сформированное вами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы