События
Доступны следующие события:
UserEventsOnEventBeforeSave
UserEventsOnEventSave
- сохранение событияevent
- событие объект
UserEventsOnEventBeforeRemove
UserEventsOnEventRemove
- удаление событияevent
- событие объект
UserEventsOnBeforeChangeStatus
UserEventsOnChangeStatus
- смена статуса событияinstance
- сущность событиеstatus
- идентификатор статуса
UserEventsOnBeforeAddToOrder
UserEventsOnAddToOrder
- добавление поля заказаkey
- ключ поляvalue
- значение поля
UserEventsOnBeforeValidateOrderValue
UserEventsOnValidateOrderValue
- валидация поля заказаkey
- ключ поляvalue
- значение поля
UserEventsOnBeforeRemoveFromOrder
UserEventsOnRemoveFromOrder
- удаление поля заказаkey
- ключ поляorder
- заказ объект
UserEventsOnBeforeEmptyOrder
UserEventsOnEmptyOrder
- очистка заказаorder
- заказ объект
UserEventsOnBeforeGetOrderCost
UserEventsOnGetOrderCost
- получение стоимости заказаorder
- заказ объектcost
- стоимость
UserEventsOnSubmitOrder
- обработка заказаorder
- заказ объектdata
- данные массив
UserEventsOnBeforeCreateOrder
UserEventsOnCreateOrder
- создание заказаmsOrder
- заказ объектorder
- заказ объект
UserEventsOnDaysState
- состояние днейstate
- состояние массивorder
- заказ объект
UserEventsOnTimesState
- состояние времениstate
- состояние массивorder
- заказ объект
Примеры
Расчитать стоимость события
php
<?php
switch ($modx->event->name) {
case "UserEventsOnBeforeGetOrderCost":
/** @var UserEventsOrderInterface $orderHandler */
$orderHandler = $modx->getOption("order", $scriptProperties);
if (!$orderHandler OR !($orderHandler instanceof UserEventsOrderInterface)) {
return;
}
$values = $modx->Event->returnedValues;
$data = $orderHandler->get();
$rid = $modx->getOption("resource", $data);
$cost = 0;
// расчет стоимости согласно своей логике
if ($resource = $modx->getObject("modResource", $rid)) {
$cost = $resource->get("id") * 100;
}
$values["cost"] = $cost;
$modx->event->returnedValues = $values;
break;
}