Доброго времени суток.
Подскажите пожалуйста. Добавил обработчик:
Подскажите пожалуйста. Добавил обработчик:
Код |
---|
<? //-- Добавление обработчика события 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") { $kv = 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; } AddEventHandler('sale', 'OnOrderUpdate', Array('CSaleGuestHandlers', 'OnOrderUpdateHandler')); AddEventHandler('sale', 'OnSaleComponentOrderOneStepProcess', Array('CSaleGuestHandlers', 'OnSaleComponentOrderOneStepProcessHandler')); AddEventHandler('sale', 'OnSaleComponentOrderOneStepComplete', Array('CSaleGuestHandlers', 'OnSaleComponentOrderOneStepCompleteHandler')); AddEventHandler('sale', 'OnSaleComponentOrderOneStepFinal', Array('CSaleGuestHandlers', 'OnSaleComponentOrderOneStepFinalHandler')); class CSaleGuestHandlers { private static $bGuestOrder = false; public static function OnOrderUpdateHandler($ID, $arFields) { if (self::$bGuestOrder && $GLOBALS['USER']->IsAuthorized() && isset($arFields['PRICE'])) { $_SESSION['SAVED_UID'] = $GLOBALS['USER']->GetID(); $GLOBALS['USER']->Logout(); } } public static function OnSaleComponentOrderOneStepProcessHandler($arResult, $arUserResult, $arParams) { if (empty($arResult['ERROR']) && $arUserResult['CONFIRM_ORDER']=='Y' && !$GLOBALS['USER']->IsAuthorized()) { if ($arUser = CUser::GetList($by='id', $order='asc', array('=EMAIL' => $arUserResult['USER_EMAIL']))->Fetch()) { if (!in_array(1, CUser::GetUserGroup($arUser['ID']))) { $GLOBALS['USER']->Authorize($arUser['ID']); self::$bGuestOrder = true; } } } } public static function OnSaleComponentOrderOneStepCompleteHandler($ID, $arOrder, $arParams) { if ($ID <= 0) { if (self::$bGuestOrder) { $GLOBALS['USER']->Logout(); } } } public static function OnSaleComponentOrderOneStepFinalHandler($ID, $arOrder, $arParams) { if ((!$GLOBALS['USER']->IsAuthorized() && $_SESSION['SAVED_UID']!=$arOrder['USER_ID']) || ($GLOBALS['USER']->IsAuthorized() && $GLOBALS['USER']->GetID()!=$arOrder['USER_ID']) ) { $arOrder = array(); } } } ?> |