2017-02-15 19 views
1

我創建了一個presta模塊並使用了actionCartSave鉤子。 但是,當我在hookActionCartSave函數中打印字符串時,它顯示雙倍結果 我不知道爲什麼,你能爲我解釋一下嗎?Prestashop hookActionCartSave函數運行2次?

我的代碼:

 

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

     print_r('expression'); 
    } 

結果是:

 

    expressionexpression 

謝謝

+0

馬車上時的一個更節省時間導航,所以掛鉤被稱爲更多的一次:) – sarcom

+0

我可以運行它1次? – phinq

回答

1

掛鉤ActionCartSave被稱爲addCartupdate方法。

public function add($autodate = true, $null_values = false) 
{ 
    /* ... */ 
    Hook::exec('actionCartSave'); 

    return $return; 
} 
 
public function update($null_values = false) 
{ 
    /* ... */ 
    Hook::exec('actionCartSave'); 

    return $return; 
} 

所以,如果你在不同的控制器搜索你發現車被保存多次,所以掛鉤被更多的一倍:)

+0

如何運行一次(僅)? – phinq

+0

我創建一個變量並再次設置狀態,似乎它可以正常工作。謝謝 – phinq

+0

抱歉,遲到的答案,你不能運行它一次,因爲它超出了你的控制:)。我很高興聽到您已經找到解決方案,歡迎您;) – sarcom