Иногда душка клиента возжелает получать в письме о заказе дополнительные параметры. Задача не сложная конечно, но все таки решил написать об этом. Как никак сам товарищ Дуров говорил: "ведите блог!". Много писанины не будет. Сразу перейдем к коду. В /bitrix/php_interface/init.php Добавляем следующее:
--
---
--
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | <? //Событие перед отправкой письма о заказе AddEventHandler("sale", "OnOrderNewSendEmail", "bxModifySaleMails"); //Собственно обработчик события function bxModifySaleMails($orderID, &$eventName, &$arFields){ $arOrder = CSaleOrder::GetByID($orderID); // получаем телефоны и адрес $order_props = CSaleOrderPropsValue::GetOrderProps($orderID); $phone=""; $index = ""; $country_name = ""; $city_name = ""; $address = ""; $FULL_INFO=''; $INN =""; while ($arProps = $order_props->Fetch()){ if($arProps["VALUE"]!=""){ $arFields[$arProps["CODE"]] = $arProps["VALUE"]; } 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"]; } //COMPANY DATA if ($arProps["CODE"] == "COMPANY" && $arProps["VALUE"]!=''){$FULL_INFO.= ' Название компании: '.$arProps["VALUE"].'<br>';} if ($arProps["CODE"] == "INN"&& $arProps["VALUE"]!=''){ $INN =$arProps["VALUE"]; $FULL_INFO.= ' ИНН: '.$arProps["VALUE"].'<br>';} if ($arProps["CODE"] == "KPP"&& $arProps["VALUE"]!=''){$FULL_INFO.= ' КПП: '.$arProps["VALUE"].'<br>';} if ($arProps["CODE"] == "FAX"&& $arProps["VALUE"]!=''){$FULL_INFO.= ' Факс: '.$arProps["VALUE"].'<br>';} if ($arProps["CODE"] == "CONTACT_PERSON "&& $arProps["VALUE"]!=''){$FULL_INFO.= ' Контактное лицо: '.$arProps["VALUE"].'<br>';} } //Полные адрес $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["USER_DESCRIPTION"] = $arOrder["USER_DESCRIPTION"]; $arFields["PHONE"] = $phone; $arFields["FULL_INFO"] = $FULL_INFO; //FULL_INFO $arFields["DELIVERY_NAME"] = $delivery_name; $arFields["PAY_SYSTEM_NAME"] = $pay_system_name; $arFields["FULL_ADDRESS"] = $full_address; //SALE_ADMIN_NEW_ORDER if($INN!=""){ CEvent::Send('SALE_ADMIN_NEW_ORDER',"s1",$arFields); } } |
Комментариев нет:
Отправить комментарий