Не изменяются данные после msOnBeforeCreateOrder

Доброго времени суток.
Как я понимаю, это событие должно срабатывать до того момента как создастся Order, и в тоже время после валидации. Следовательно, изменение значений в этом событии должно произвести изменения во время записи
Условно у меня такой код, хотя там на много сложней, но этот тоже не срабатывает.
Я ожидал что в итоге поле сохраниться с "!!!" на конце. Вопрос, что я делаю не так?
if ($modx->event->name == 'msOnBeforeCreateOrder') {
$arr = $order->get();
$arr['city']=$arr['city'].'!!!';

$order->set($arr);
$arr_new = $order->get();
}
Вписывал print_r($arr_new); exit(); там всё изменено.
Пытался возвращать $order/$arr;
Pashkevich Aleksandr
30 ноября 2014, 23:52
modx.pro
3 336
0

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

Алексей Ерохин
01 декабря 2014, 16:18
0
Результаты Ваших изменений не влияют на записываемый объект. Только могут прервать процедуру, например, дополнительные проверки пользователя и т.п.
Если хотите изменить что-либо, используйте msOnCreateOrder.
    Pashkevich Aleksandr
    01 декабря 2014, 17:11
    0
    Не помогло, вот именно так как там и указано, только в ифе заменил на msOnCreateOrder, и в указании системное событие, тоже поменял на msOnCreateOrder.

    p.s. если верить исходникам, бефор идёт немного раньше чем просто создание. И Там данные негде не меняются между этими двумя событиями.
      Алексей Ерохин
      01 декабря 2014, 17:20
      0
      $order->save();
      Делали?
        Pashkevich Aleksandr
        01 декабря 2014, 20:10
        0
        Fatal error: Call to undefined method msOrderHandler::save() in /hom*****cache.php on line 25

        if ($modx->event->name == 'msOnCreateOrder') {
        $arr = $order->get();
        $arr['city']=$arr['city'].'!!!';
        $order->set($arr);
        $order->save();
        }
        $order->save; как раз 25-ая строка, просто там у меня часть строк закомментирована.
          Алексей Ерохин
          01 декабря 2014, 20:12
          0
          объект заказа находится в $msOrder
            Pashkevich Aleksandr
            01 декабря 2014, 20:19
            0
            Не сработало, и по $msOrder, он ничего не возвращает в $arr;
              Алексей Ерохин
              01 декабря 2014, 20:20
              0
              $msOrder->set('city','!!!');
              $msOrder->save();
                Pashkevich Aleksandr
                01 декабря 2014, 20:27
                0

                Код плагина

                $msOrder->set('city', '!!!');
                $msOrder->save();
                То что он срабатывает точно уверен. Так как специально сейчас проверил вот таким образом
                var_dump('1111');
                exit();
                И в итоге в дебагере вылезло 1111, и оформление не пошло.
            Воеводский Михаил
            01 декабря 2014, 20:12
            0
            Вместо $order попробуйте $msOrder
              Pashkevich Aleksandr
              01 декабря 2014, 20:14
              0
              Ошибки не возникло, но и город не изменился :-(
                Pashkevich Aleksandr
                01 декабря 2014, 20:16
                -1
                В случае когда $msOrder, то $arr пустой получается после $msOrder->get();
                Да и я пол ночи эксперементировал и с $msOrder и с $order
      Meriko
      24 апреля 2015, 09:07
      0
      Здравствуйте!
      Подскажите, пожалуйста, куда нужно зайти, чтобы включить msOnCreateOrder? помогите пожалуйста, в настройках не могу найти msOnCreateOrder.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        14