Вешаем обработчик событий
use \Bitrix\Main\EventManager;
EventManager::getInstance()->addEventHandler(
'sale',
'OnSalePropertyValueSetField',
['CSaleEventsHandler', 'on_sale_property_value_set_field'],
$_SERVER['DOCUMENT_ROOT'] . '/local/php_interface/include/events/sale/sale_handlers.php'
);
Файл с обработчиком подключается 4-ым параметром и нужен только в срабатывании данного события.
Само событие OnSalePropertyValueSetField - срабатывает после установки значения свойства.
Таких обработчиков может быть много и на разные сущности (Payment, ShipmentItem, Shipment, BasketItem, Order)
по маске On<сущность>SetFiel.
Но мы рассмастриваем конкретный пример с установкой свойства заказа.
Событие происходит непосредственно перед изменением свойства!
Сам обработчик
function on_sale_property_value_set_field(\Bitrix\Main\Event $event){
$_property = $event->getParameter('ENTITY'); // Bitrix\Sale\PropertyValue Object
$property_data = $_property->getProperty(); // массив свойства
$value = $event->getParameter('VALUE'); // установленное значение
$order = $_property->getOrder(); // так можно получить объект заказа установленного свойства
// как вариант, поймать нужное вам свойство по символьному коду и запилить свой обработчик
if(is_array($property_data) && array_key_exists('CODE', $property_data)){
if($property_data['CODE'] == 'ORDER_REMIND_SMS'){
}
}
}
Комментарии