我创建了一个presta模块并使用actionCartSave钩子。 但是当我在hookActionCartSave函数中打印字符串时,它会显示双重结果 我不知道为什么,你能解释一下吗?
我的代码:
public function hookActionCartSave() { if (!$this->active || !Validate::isLoadedObject($this->context->cart) || !Tools::getIsset('id_product')) return; print_r('expression'); }
结果是:
expressionexpression
谢谢
答案 0 :(得分:2)
在ActionCartSave
类的add
和update
方法中调用了钩子Cart
。
public function add($autodate = true, $null_values = false)
{
/* ... */
Hook::exec('actionCartSave');
return $return;
}
public function update($null_values = false) { /* ... */ Hook::exec('actionCartSave'); return $return; }
因此,如果你在各种控制器中搜索,你发现购物车被保存了更多次,所以钩子被调用了一次以上:)