В 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 параметров, характерных для компонент оформления заказа.
Возможно есть другие способы?