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