Как реализовать автоматический статус "оплачено" для товаров с ценой равной 0.

Здравствуйте.

Пытался вешать на событие
msOnCreateOrder
$miniShop2 = $this->modx->getService('miniShop2');
$miniShop2->changeOrderStatus($order_id, 2);
Но реакции никакой, кроме той, что заказ создается вообще без статуса.

Или это желательно делать не в плагине?

Решил таки сам, не знаю, насколько хорошее решение, но работает. :)

Добавил такой кусочек кода в кастомный класс обработчика заказа на основе msorderhandler
if($order->get('cart_cost') > 0) {
                $response = $this->ms2->changeOrderStatus($order->get('id'), 1);
            } else{
                $response = $this->ms2->changeOrderStatus($order->get('id'), 2);
            }
Илья Чехов
30 мая 2018, 07:24
modx.pro
1
729
0

Комментарии: 1

Илья Чехов
30 мая 2018, 11:30
0
В myorderhandler_my.class.php есть строчка
$response = $this->ms2->changeOrderStatus($order->get('id'), 1);
Насколько корректно в моем классе обработчике на функции Submit сделать проверку на стоимость итоговой корзины и менять от этого смену статуса?
Пока вижу такое решение (я не очень опытный программист).

Если кто-то что-то подскажет или направит, будет здорово.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1