Не изменяются данные после msOnBeforeCreateOrder
Доброго времени суток.
Как я понимаю, это событие должно срабатывать до того момента как создастся Order, и в тоже время после валидации. Следовательно, изменение значений в этом событии должно произвести изменения во время записи
Условно у меня такой код, хотя там на много сложней, но этот тоже не срабатывает.
Я ожидал что в итоге поле сохраниться с "!!!" на конце. Вопрос, что я делаю не так?
Пытался возвращать $order/$arr;
Как я понимаю, это событие должно срабатывать до того момента как создастся 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;
Комментарии: 14
Результаты Ваших изменений не влияют на записываемый объект. Только могут прервать процедуру, например, дополнительные проверки пользователя и т.п.
Если хотите изменить что-либо, используйте msOnCreateOrder.
Если хотите изменить что-либо, используйте msOnCreateOrder.
Не помогло, вот именно так как там и указано, только в ифе заменил на msOnCreateOrder, и в указании системное событие, тоже поменял на msOnCreateOrder.
p.s. если верить исходникам, бефор идёт немного раньше чем просто создание. И Там данные негде не меняются между этими двумя событиями.
p.s. если верить исходникам, бефор идёт немного раньше чем просто создание. И Там данные негде не меняются между этими двумя событиями.
$order->save();
Делали?
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-ая строка, просто там у меня часть строк закомментирована.
объект заказа находится в $msOrder
Не сработало, и по $msOrder, он ничего не возвращает в $arr;
$msOrder->set('city','!!!');
$msOrder->save();
$msOrder->save();
Код плагина
$msOrder->set('city', '!!!');
$msOrder->save();
То что он срабатывает точно уверен. Так как специально сейчас проверил вот таким образомvar_dump('1111');
exit();
И в итоге в дебагере вылезло 1111, и оформление не пошло.
Вместо $order попробуйте $msOrder
Ошибки не возникло, но и город не изменился :-(
В случае когда $msOrder, то $arr пустой получается после $msOrder->get();
Да и я пол ночи эксперементировал и с $msOrder и с $order
Да и я пол ночи эксперементировал и с $msOrder и с $order
$msOrder->get('id');
Ну я думал, что $msOrder работает по тому же принципу что и просто $order.
Здравствуйте!
Подскажите, пожалуйста, куда нужно зайти, чтобы включить msOnCreateOrder? помогите пожалуйста, в настройках не могу найти msOnCreateOrder.
Подскажите, пожалуйста, куда нужно зайти, чтобы включить msOnCreateOrder? помогите пожалуйста, в настройках не могу найти msOnCreateOrder.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.