Здравствуйте.
Сайт, интернет-магазин. При оформлении заказа отправляется стандартное письмо, событие SALE_NEW_ORDER. В это событие добавлен еще шаблон, для админа. Но шаблон для админа должен содержать все свойства заказа, которые ввел пользователь.
Для этого в init.php прописан код:[CODE]AddEventHandler("sale", "OnOrderNewSendEmail", "OnOrderNewSendEmailHandler");
function OnOrderNewSendEmailHandler($orderID, &$eventName, &$arFields){
$db_props = CSaleOrderPropsValue::GetOrderProps($orderID);
$added_str = "";
CEventLog::Add(array("SEVERITY" => "SECURITY", "AUDIT_TYPE_ID" => "ORDER_EMAIL", "MODULE_ID" => "sale", "ITEM_ID" => $orderID, "DESCRIPTION" => "Заходим в обработчик",));
while ($arProps = $db_props->GetNext()){
if($arProps["VALUE"]){
if($arProps["TYPE"]!="LOCATION"){
$added_str .= $arProps["VALUE"]." - ".$arProps["NAME"]."<br>";
CEventLog::Add(array("SEVERITY" => "SECURITY", "AUDIT_TYPE_ID" => "ORDER_EMAIL", "MODULE_ID" => "sale", "ITEM_ID" => $orderID, "DESCRIPTION" => "Добавляем ".$arProps["VALUE"]." - ".$arProps["NAME"],));
}
$arFields["ORDER_".$arProps["CODE"]] = $arProps["VALUE"];
}else{
$arFields["ORDER_".$arProps["CODE"]] = "";
}
}
CEventLog::Add(array("SEVERITY" => "SECURITY", "AUDIT_TYPE_ID" => "ORDER_EMAIL", "MODULE_ID" => "sale", "ITEM_ID" => $orderID, "DESCRIPTION" => "Результат ".$added_str,));
$arFields["PROP_INFO"] = $added_str;
CEventLog::Add(array("SEVERITY" => "SECURITY", "AUDIT_TYPE_ID" => "ORDER_EMAIL", "MODULE_ID" => "sale", "ITEM_ID" => $orderID, "DESCRIPTION" => $arFields["EMAIL"].": ".$arFields["PROP_INFO"],));
}[/CODE]
Поддержка устаревших событий включена.
Как видно по коду, добавлены точки записи в журнал. Сделаны специально, чтобы отслеживать работу события.
Исходя из кода в массив arFields должны добавится поля "ORDER_".$arProps["CODE"] и результирующее поле PROP_INFO (именно оно используется в письме).
Шаблон письма:[CODE]Пришел новый заказ с сайта #SITE_NAME#<br>
<br>
#ORDER_ID# - код заказа<br>
#ORDER_ACCOUNT_NUMBER_ENCODE# - код заказа(для ссылок)<br>
#ORDER_REAL_ID# - реальный ID заказа<br>
#ORDER_DATE# - дата заказа<br>
#ORDER_USER# - заказчик<br>
#PRICE# - сумма заказа<br>
#EMAIL# - E-Mail заказчика<br>
#BCC# - E-Mail скрытой копии<br>
#ORDER_LIST# - состав заказа<br>
#SERVER_NAME# - URL сервера (устанавливается в настройках)<br>
Свойства заказа:<br>
#PROP_INFO#
[/CODE]
Создаем заказ, смотрим в журнал - событие отработало, свойства получены, все момент записались в журнал. НО в письме значения поля PROP_INFO нет, ПУСТО! Почему так, не могу понять. Только что в журнал записал полную строку, а в письме ничего нет. Делаю запрос к b_event, получаю s:9:"PROP_INFO";s:0:"" - тоже пусто.