В магазине необходимо было настроить функционал "упоминания о неоплаченном заказе", настроил вроде все хорошо, но при тестирование обнаружил, что уведомления шлет даже тем кто оплачивает наличными.
Я уже расстроился что надо будет писать свой агент, не хотелось уводить функционал из ядра, но при просмотре функции CSaleOrder::RemindPayment(), именно она отвечает за отправку сообщений, обнаружил, что разработчики разместили там событие OnOrderRemindSendEmail , вот как раз мы его и будем использовать для наших модификаций.
В файле init.php разместил такой код
AddEventHandler("sale", "OnOrderRemindSendEmail", "MailRemindPay"); function MailRemindPay($ID, &$eventName, &$arFields){ $arOrder = CSaleOrder::GetByID($ID); // в этом массив разместим те id платежных систем при которых необходимо отсылать сообщение пользователю $paySystem = array('9'); if(!in_array($arOrder['PAY_SYSTEM_ID'] ,$paySystem)) { return false; } }
Удачного использования.
Опубликовано: 13 марта 2013
|
|