【问题标题】:Prestashop hookActionCartSave function run 2 times?Prestashop hookActionCartSave 函数运行 2 次?
【发布时间】:2017-02-15 15:27:56
【问题描述】:

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

我的代码:

公共函数 hookActionCartSave() { if (!$this->active || !Validate::isLoadedObject($this->context->cart) || !Tools::getIsset('id_product')) 返回; print_r('表达式'); }

结果是:

表达表达

谢谢

【问题讨论】:

  • 购物车在导航过程中被多次保存,所以钩子被多次调用:)
  • 我可以运行 1 次吗?

标签: prestashop


【解决方案1】:

钩子ActionCartSaveCart类的addupdate方法中被调用。

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

    return $return;
}
公共函数更新($null_values = false) { /* ... */ Hook::exec('actionCartSave'); 返回 $return; }

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

【讨论】:

  • 我怎样才能运行一次(只)?
  • 我创建了一个变量并再次设置状态,似乎它可以正常工作。谢谢
  • 抱歉,回答晚了,您无法运行一次,因为它超出了您的控制范围 :)。很高兴听到您找到了解决方案,不客气;)
  • 你好@phinq。我也需要限制这个钩子的执行。您找到解决此问题的解决方法是什么?谢谢。
  • 好的,我找到了解决方法。我使用actionObjectCartUpdateAfter 钩子而不是ActionCartSave 钩子。
猜你喜欢
  • 1970-01-01
  • 2012-01-09
  • 1970-01-01
  • 2012-04-02
  • 2020-11-29
  • 2021-06-29
  • 2016-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多