Убираем оплаты/доставки из списка sale.order.ajax

Иногда требуется во время тестирования скрывать оплаты или доставки для обычных пользователей. Для таких вещей можно использовать событие компонента OnSaleComponentOrderResultPrepared

Пример убирания платежной системы с id = 3:

Main\EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleComponentOrderResultPrepared',
'OnSaleComponentOrderResultPreparedHandler'
);
function OnSaleComponentOrderResultPreparedHandler($order,&$arUserResult,$request,&$arParams,&$arResult){

if(!$GLOBALS['USER']->IsAdmin()){
 foreach($arResult['PAY_SYSTEM'] as $k => $ps){
 if($ps['PAY_SYSTEM_ID'] == 3){
 unset($arResult['PAY_SYSTEM'][$k]);
 unset($arResult['JS_DATA']['PAY_SYSTEM'][$k]);
 $arResult['PAY_SYSTEM'] = array_values($arResult['PAY_SYSTEM']);
 $arResult['JS_DATA']['PAY_SYSTEM'] = array_values($arResult['JS_DATA']['PAY_SYSTEM']);
 }
 }
 }

}
С доставкой(DELIVERY) аналогично.