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

Письмо о заказе битрикс. Поставил обработчик, работают числовые значения, текстовые нет. How it Do?

Доброго дня.
Поставил на битриксе обработчик почтовых событий.
Вообщем добавил новые поля в почтовый шаблон, нужно было добавить возможность указания улицы, номера дома, телефона и прочее.
Все работает, кроме текстового поля. Не числового. Числа приходят.
Все здорово. А вот нужно сделать адрес.
В коде все строки [VALUE] ну соответственно число.
А что нужно поставить в код с street чтобы принимал текстовое значение? Пробовал
[TEXT] [STRING]
Или дело еще и в обработчике arfields?
Подскажите пожалуйста, вот код php.init
<?
//-- Добавление обработчика события

AddEventHandler("sale", "OnOrderNewSendEmail", "bxModifySaleMails");

//-- Собственно обработчик события

function bxModifySaleMails($orderID, &$eventName, &$arFields)
{
$arOrder = CSaleOrder::GetByID($orderID);

//-- получаем телефоны и адрес
$order_props = CSaleOrderPropsValue::GetOrderProps($orderID);
$phone="";
$persona="";
$index = "";
$street="";
$nomer="";
$kv="";
$etaz="";
$domofon="";
$country_name = "";
$city_name = "";
$address = "";
while ($arProps = $order_props->Fetch())
{
if ($arProps["CODE"] == "PHONE")
{
$phone = htmlspecialchars($arProps["VALUE"]);
}
if ($arProps["CODE"] == "LOCATION")
{
$arLocs = CSaleLocation::GetByID($arProps["VALUE"]);
$country_name = $arLocs["COUNTRY_NAME_ORIG"];
$city_name = $arLocs["CITY_NAME_ORIG"];
}

if ($arProps["CODE"] == "INDEX")
{
$index = $arProps["VALUE"];
}

if ($arProps["CODE"] == "ADDRESS")
{
$address = $arProps["VALUE"];
}
if ($arProps["CODE"] == "persona")
{
$persona = htmlspecialchars($arProps["VALUE"]);
}
if ($arProps["CODE"] == "nomer")
{
$nomer = htmlspecialchars($arProps["VALUE"]);
}
if ($arProps["CODE"] == "kv")
{
$kv = htmlspecialchars($arProps["VALUE"]);
}
if ($arProps["CODE"] == "street")
{
$street = htmlspecialchars($arProps["STRING"]);
}
if ($arProps["CODE"] == "etaz")
{
$etaz = htmlspecialchars($arProps["VALUE"]);
}
if ($arProps["CODE"] == "domofon")
{
$domofon = htmlspecialchars($arProps["VALUE"]);
}
}

$full_address = $index.", ".$country_name."-".$city_name.", ".$address;

//-- получаем название службы доставки
$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"];
}

//-- добавляем новые поля в массив результатов
$arFields["ORDER_DESCRIPTION"] = $arOrder["USER_DESCRIPTION"];
$arFields["PHONE"] = $phone;
$arFields["persona"] = $persona;
$arFields["DELIVERY_NAME"] = $delivery_name;
$arFields["PAY_SYSTEM_NAME"] = $pay_system_name;
$arFields["FULL_ADDRESS"] = $full_address;
$arFields["nomer"] = $nomer;
$arFields["kv"] = $kv;
$arFields["etaz"] = $etaz;
$arFields["domofon"] = $domofon;
$arFields["street"] = $street;
}
  • Вопрос задан
  • 1098 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@kabashowlab Автор вопроса
Решил проблему вообщем:
if ($arProps["CODE"] == "street")
{
$kv = htmlspecialchars($arProps["STRING"]);
вместо этого вставил
if ($arProps["CODE"] == "street")
{
$street = $arProps["VALUE"];
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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