Попробуйте просто объявить пустые переменные в самой функции поместить в них а только потом в $arFields, у меня это так:
Код |
---|
<?
AddEventHandler("sale", "OnOrderNewSendEmail", "bxModifySaleMails");
function bxModifySaleMails($orderID, &$eventName, &$arFields)
{
$city = '';
$phone = '';
$address = '';
$delivery_name ='';
$arOrder = CSaleOrder::GetByID($orderID);
$order_props = CSaleOrderPropsValue::GetOrderProps($orderID);
while ($arProps = $order_props->Fetch()){
if ($arProps['ORDER_PROPS_ID']==67){ $phone.='Контактный телефон: '.$arProps['VALUE'];}
if ($arProps['ORDER_PROPS_ID']==71){ $address.='Адрес доставки или номер отделения новой почты: '.$arProps['VALUE'];}
if ($arProps['ORDER_PROPS_ID']==92){ $delivery_name.='Доставка: '.$arProps['VALUE'];}
//-- получаем название Города
if ($arProps["CODE"] == "LOCATION")
{
$arLocs = CSaleLocation::GetByID($arProps["VALUE"]);
$country_name = $arLocs["COUNTRY_NAME_ORIG"];
$city_name = $arLocs["CITY_NAME_ORIG"];
}
}
$full_address.='Город: '." ".$country_name." , ".$city_name;
//-- получаем название службы доставки
$arDeliv = CSaleDelivery::GetByID($arOrder["DELIVERY_ID"]);
$delivery_name = "";
if ($arDeliv)
{
$delivery_name.='Доставка: '.$arDeliv["NAME"];
}
//-- получаем название платежной системы
$arPaySystem = CSalePaySystem::GetByID($arOrder["PAY_SYSTEM_ID"]);
$pay_system_name = "";
if ($arPaySystem)
{
$pay_system_name.='Способ оплаты: '.$arPaySystem["NAME"];
}
$coment.='Комментарий к заказу: '.$arOrder["USER_DESCRIPTION"];
$arFields["PAY"] = $pay_system_name;
$arFields["CITY"] = $full_address;
$arFields["PHONE"] = $phone;
$arFields["ADDRESS"] = $address;
$arFields["DELIVERY"] = $delivery_name;
$arFields["ADD_ORDER_DESCRIPTION"] = $coment;
}
?> |