Сейчас в shopWorkflowAction::postExecute() сначала отправляются уведомления (если настроены), а уж потом запускается обработка хуков order_action.* . Хорошо бы было если поменять эти части кода местами -- сначала вызов хуков, а потом отправка уведомлений. Тогда в уведомления смогут попадать данные, добавленные обработчиками хуков.
11 комментариев
Разве в последних версиях не так? Помню, что этот вопрос точно поднимался уже, но не помню чем решилось.
Увы. :-(
Тогда еще хотелось бы, чтобы можно было "не отправить" уведомление.
Также хорошо было бы иметь три хука вместо одного, например
order_action.before_create - в самом начале перед всеми действиями
order_action.create
order_action.after_create - в самом конец, после всех действий
так как задачи бывают разными и не всегда предназначенное разработчиками место вставки хука позволяет решить их все.
Ну скорее 2: before & after. Не совсем ясно как вызывать во время. Ну и как развитие темы добавить такие хуки везде, где выполняется действие с чем-либо:
cart_add.before, cart_add.after
product_save.before, product_save.after
На самом деле это решается так: добавляем хуками order_action_form.* тег
который отключает отправку сообщений, а
order_action.* отправляет письма после своего выполнения.
Да, но не универсально. А что если заказ прилетел или изменен по API или плагином?
не понимаю что это менаяет - передаешь notifications POST'ом вместе с остальными параметрами в order_action.* и все.
ну если думать только про свои плагины, то может быть....а если это сторонние плагины или внешние системы шлют, а не хочешь отправлять из своего плагина?
Я не говорю что это не нужно, просто поделился решением, но увы на wa надежды особой нет.
проверено на паре плагинов - все норм :)