Я почувствую себя специалистом по событиям и шаблонам, когда наконец буду приходить письма с телефоном и адресом заказчика =) Я уже нашла место и массив,где эти параметры передаются в почтовый шаблон, как вы мне говорили. Вот теперь мне надо выуживать данные, вводимые пользователем в форму при заказе товара (они я так понимаю, записываются в базу данных заказов), а конкретно - местоположение и телефон - и записывать их в этот массив. Пока что я потерялась в море файлов компонента sale, но надежды на то, что разберусь, не теряю =)
Ищем компоненту sale.order.full. Заходим в component.php. Идем приблизительно на 827 строку. Там, где у нас Send("SALE_NEW_ORDER",.....). Там только одно это событие! Его невозможно с чем-то перепутать.
И там вставляем это:
Код
//шерстим все свойтсва по заказу
$db_props = CSaleOrderPropsValue::GetOrderProps($arResult["ORDER_ID"]);
//видимость
$phone = '';
$location = '';
//чудо-фетч
while($db_prop = $db_props->Fetch())
{
//выбираем свойства. Неоптимально, но нам не платят
if ($db_prop['CODE'] == 'PHONE')
{
$phone = $db_prop['VALUE'];
}
//таже проблема
if ($db_prop['CODE'] == 'LOCATION')
{
//но тут у нас тока идент ..., поэтому крадем символическое представление
$arLocs = CSaleLocation::GetByID($db_prop['VALUE'], LANGUAGE_ID);
$location = $arLocs["COUNTRY_NAME"];
}
}
$arFields = Array(
"ORDER_ID" => $arResult["ORDER_ID"],
"ORDER_DATE" => Date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT", SITE_ID))),
"ORDER_USER" => ( (strlen($arResult["PAYER_NAME"]) > 0) ? $arResult["PAYER_NAME"] : $USER->GetFullName() ),
"PRICE" => SaleFormatCurrency($totalOrderPrice, $arResult["BASE_LANG_CURRENCY"]),
"BCC" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME),
"EMAIL" => $arResult["USER_EMAIL"],
"ORDER_LIST" => $strOrderList,
"SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@".$SERVER_NAME),
//ура, телефон
"PHONE" => $phone,
//локация
"LOCATION" => $location,
);
$event->Send("SALE_NEW_ORDER", SITE_ID, $arFields);
Консультации по маркетплейсу. Установка, настройка, доработка решений
и сначала попробовал просто добавить "PHONE" => $arResult["PHONE"] в массив $arFields, а потом просто заменил этот код на тот, который был указан Александром Егжановым - не помогло ни так, ни так, #PHONE# в письме по-прежнему отображается как #PHONE#.
Подскажите, пожалуйста, где тут может быть проблема.
Вот тут я, наверное, и облажался, - а где можно посмотреть необходимый массив $arResult? В component.php? Их там несколько, но с разными аттрибутами, например:
Я правильно понимаю, что, распечатав массив, можно узнать, есть ли что-то внутри? Я добавил echo "<pre>";print_r($arResult);echo "</pre>"; перед массивом $arFields, где теперь можно посмотреть выходные данные?