Как выполнить пользовательский хук из другого хука в prestashop? - PullRequest
2 голосов
/ 14 января 2020

Я разрабатываю модуль для prestashop 1.7.3, который обрабатывает снижение цен в зависимости от содержимого корзины. Я использую два хука (1. displayFidelityProgramCartTop и 2. actionCartSave ) и выполняю действия внутри метода hookActionCartSave($params): в зависимости от результата мне нужно обновить sh данные возвращаются первым хуком.

Я использую Hook::exec('displayFidelityProgramCartTop', array()) в конце метода hookActionCartSave($params), но кажется, что ловушка не выполняется. Хук правильно вызывается один раз, при инициализации. Как я могу обновить sh данные, возвращаемые ловушкой (= повторное выполнение ловушки для обновления шаблона)?

Мой код:

cart.tpl

..
{hook h='displayFidelityProgramCartTop' mod='programmeproplus'}
..

programmeproplus. php (основной файл модуля)

public function install(){ 
   ..
   $this->registerHook('displayFidelityProgramCartTop') && 
   $this->registerHook('actionCartSave')
   ..
}

public function hookActionCartSave() {
   // Perform some actions .. 
   Hook::exec('displayFidelityProgramCartTop', array());
}


public function hookDisplayFidelityProgramCartTop(){ 
   // Perform some actions .. 
   return "<p>List of promotions : ".$promotions."</p>";
}
...