[Shop-Script] Обрабатывать хуки order_action.* до отправки уведомлений

16

Сейчас в shopWorkflowAction::postExecute() сначала отправляются уведомления (если настроены), а уж потом запускается обработка хуков order_action.* . Хорошо бы было если поменять эти части кода местами -- сначала вызов хуков, а потом отправка уведомлений. Тогда в уведомления смогут попадать данные, добавленные обработчиками хуков.

11 комментариев

  • +3
    Александр Тарасенко Александр Тарасенко 14 сентября 2017 16:35 #

    Также хорошо было бы иметь три хука вместо одного, например

    order_action.before_create - в самом начале перед всеми действиями

    order_action.create

    order_action.after_create - в самом конец, после всех действий

    так как задачи бывают разными и не всегда предназначенное разработчиками место вставки хука позволяет решить их все.

    • +1
      Eugen Nichikov Eugen Nichikov 14 сентября 2017 18:00 #

      Ну скорее 2: before & after. Не совсем ясно как вызывать во время. Ну и как развитие темы добавить такие хуки везде, где выполняется действие с чем-либо:

      cart_add.before, cart_add.after

      product_save.before, product_save.after

    • +2
      enso_studio@mail.ru enso_studio@mail.ru 15 сентября 2018 04:14 #

      На самом деле это решается так: добавляем хуками order_action_form.* тег

      <input type="hidden" name="notifications" value="silent">

      который отключает отправку сообщений, а 

      order_action.* отправляет письма после своего выполнения.

      • +1
        creativit.ru creativit.ru 15 сентября 2018 09:17 #

        Да, но не универсально. А что если заказ прилетел или изменен по API или плагином?

        • +1
          enso_studio@mail.ru enso_studio@mail.ru 15 сентября 2018 10:06 #

          не понимаю что это менаяет - передаешь notifications POST'ом вместе с остальными параметрами в order_action.* и все.

          • +1
            creativit.ru creativit.ru 15 сентября 2018 10:09 #

            ну если думать только про свои плагины, то может быть....а если это сторонние плагины или внешние системы шлют, а не хочешь отправлять из своего плагина? 

            • +1
              enso_studio@mail.ru enso_studio@mail.ru 15 сентября 2018 11:12 #

              Я не говорю что это не нужно, просто поделился решением, но увы на wa надежды особой нет.

            • +1
              enso_studio@mail.ru enso_studio@mail.ru 15 сентября 2018 10:07 #

              проверено на паре плагинов - все норм :)

            • +1
              Eugen Nichikov Eugen Nichikov 11 сентября 2017 18:04 #

              Разве в последних версиях не так? Помню, что этот вопрос точно поднимался уже, но не помню чем решилось.


            • +1
              creativit.ru creativit.ru 11 сентября 2017 18:38 #

              Тогда еще хотелось бы, чтобы можно было "не отправить" уведомление.

              Добавить комментарий

              Чтобы добавить комментарий, зарегистрируйтесь или войдите