
События
Доступны следующие события:
UserEventsOnEventBeforeSaveUserEventsOnEventSave- сохранение событияevent- событие объект
UserEventsOnEventBeforeRemoveUserEventsOnEventRemove- удаление событияevent- событие объект
UserEventsOnBeforeChangeStatusUserEventsOnChangeStatus- смена статуса событияinstance- сущность событиеstatus- идентификатор статуса
UserEventsOnBeforeAddToOrderUserEventsOnAddToOrder- добавление поля заказаkey- ключ поляvalue- значение поля
UserEventsOnBeforeValidateOrderValueUserEventsOnValidateOrderValue- валидация поля заказаkey- ключ поляvalue- значение поля
UserEventsOnBeforeRemoveFromOrderUserEventsOnRemoveFromOrder- удаление поля заказаkey- ключ поляorder- заказ объект
UserEventsOnBeforeEmptyOrderUserEventsOnEmptyOrder- очистка заказаorder- заказ объект
UserEventsOnBeforeGetOrderCostUserEventsOnGetOrderCost- получение стоимости заказаorder- заказ объектcost- стоимость
UserEventsOnSubmitOrder- обработка заказаorder- заказ объектdata- данные массив
UserEventsOnBeforeCreateOrderUserEventsOnCreateOrder- создание заказа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;
}