Prestashop hookActionCartSave函数运行2次?

时间:2017-02-15 15:27:57

标签: prestashop

我创建了一个presta模块并使用actionCartSave钩子。 但是当我在hookActionCartSave函数中打印字符串时,它会显示双重结果 我不知道为什么,你能解释一下吗?

我的代码:


    public function hookActionCartSave()
    {
        if (!$this->active || !Validate::isLoadedObject($this->context->cart) || !Tools::getIsset('id_product')) return;

        print_r('expression');
    }

结果是:


    expressionexpression

谢谢

1 个答案:

答案 0 :(得分:2)

ActionCartSave类的addupdate方法中调用了钩子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;
}

因此,如果你在各种控制器中搜索,你发现购物车被保存了更多次,所以钩子被调用了一次以上:)