Модифицирую minishop2 (v2.4.10): в таблицу orders добавил поле applied_bonus (бонус, который списывает со своего счета покупатель и получает скидку).
Для события msOnGetOrderCost создал плагин, который уменьшает цену. Код следующий:
$order_data = $order->get();
if (!empty($order_data['applied_bonus'])) {
$cost_with_bonus = floatval($cost) - floatval($order_data['applied_bonus']);
if ($cost_with_bonus > 0) {
$modx->event->returnedValues['cost'] = $cost_with_bonus;
return array('cost' => $cost_with_bonus);
}
}
Плагин работает, но как-то периодически, то обновляет цену, то нет. Не могу понять в чем причина.
P.S. Поле applied_bonus я добавил в msOrder (при событии OnMODXInit) и значение обновляется при событии msOnBeforeAddToOrder
А что такой старый?
Иван
Артур
Andrian
Алексей
Павел
Дмитрий
Миша
Sentinel
Саша
Алексей
Nikolay