В init.php реализован обработчик события OnBasketUpdate.
При работе с корзиной, обработчик выполняет требуемый функционал. Но при оформлении заказа также вызывается метод CSaleBasket::Update (и не только), который лишний раз вызывает "указанный" обработчик.
Каким образом можно отследить вызов этого обработчика на этапе оформления заказа?
Одним из вариантов вижу: проверка наличия в массиве $_REQUEST параметров, характерных для компонент оформления заказа.
Возможно есть другие способы?
Код |
---|
AddEventHandler("sale", "OnBasketUpdate", "OnBasketUpdateHandler"); function OnBasketUpdateHandler($ID, $arFields) { global $USER; $sEvents = ''; if (isset($arFields['ABORT']) && ($arFields['ABORT'] == 'Y')) return; // $sEvents .= var_export($_GET, true) . "\n"; // $sEvents .= var_export($_POST, true) . "\n"; // $sEvents .= var_export($arFields, true) . "\n"; if ($USER->IsAuthorized()) updateBasketType(); if (strlen($sEvents) > 0) AddMessage2Log("\n" . $sEvents); return; } |
Каким образом можно отследить вызов этого обработчика на этапе оформления заказа?
Одним из вариантов вижу: проверка наличия в массиве $_REQUEST параметров, характерных для компонент оформления заказа.
Возможно есть другие способы?