Вешаем обработчики на изменение свойств заказа в cms 1C-Bitrix.


Вешаем обработчик событий
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'){


   }
  }
}

Комментарии

Оценка:
Защита от автоматических сообщений
CAPTCHA
Введите слово на картинке