Действие на хук order_action.edit

Пытаюсь повесить отправку одного скрипта в момент редактирования заказа.

Хук точно срабатывает, но не работает, я получаю ошибку

'order_action.edit'    => 'refundAnalytics',

И сама функция

public function refundAnalytics(array $data) {
            $html = "<script>console.log('TEST')</script>";
            echo $html;
    }

2 ответа

  • 1

    повесить отправку одного скрипта в момент редактирования заказа

    Почему этот скрипт должен быть написан именно на JavaScript? Что должен в итоге делать этот скрипт?

    • +1
      Сергей Кирьянов Сергей Кирьянов 3 апреля 2019 16:00 #

      отправлять некоторые данные об изменении заказа в аналитику гугл, других вариантов отправки в аналитики нет

      • +1

        Вы хорошо смотрели?

        Хуки типа order_action.* ничего никуда возвращать не могут. Вам надо все отправлять/менять пыхой, а не пытаться почесать ухо пяткой =)

        • +1
          Сергей Кирьянов Сергей Кирьянов 3 апреля 2019 17:53 #

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

          Конкретно на order_action.delete как раз получилось повесить (не спорю что это не лучшее решение наверное, но других не нашли)

  • 1

    Что-то здесь: https://developers.webasyst.ru/hooks/shop/ я не вижу такого хука order_action.edit...

    Но в любом случае хуки из серии "order_action" выполняют действие и не должны возвращать html код. Скорее всего, Вам нужен хук "backend_order_edit" для вывода дополнительного содержимого на страницу редактирования заказа в бэкенде:

    https://developers.webasyst.ru/hooks/shop/backend_order_edit/

    На скрине видно, как ожидается ответ в формате json, а Вы через хук при помощи "echo" выводите дополнительные данные, которые никак не являются json объектом. Из-за этого и ошибка конкретно выполнения хука. В хуках вообще нельзя использовать "echo". Те хуки, которые выводят дополнительное содержимое на страницах, добавляют его через "return". Подробнее в описаниях к хукам.

    • +1
      Сергей Кирьянов Сергей Кирьянов 3 апреля 2019 17:55 #

      Ага. order_action.edit почему то не задокументирован, но он есть (уже в поиске по форуму находил, обсуждалось).

      backend_order_edit добавляет содержимое, но как с помощью него отследить был ли заказ отредактирован?

      • +1
        backend_order_edit добавляет содержимое, но как с помощью него отследить был ли заказ отредактирован?

        Через хук backend_order_edit можно загрузить свой js скрипт, в котором, например, сделать отслеживание нажатия на кнопку "Сохранить заказ".

Добавить ответ

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