当前端PS1.7用户删除其帐户中的邮政地址时,是否触发了挂钩



hookActionValidateCustomerAddressForm只有在创建或更改地址时才会被调用。

根据https://devdocs.prestashop.com/1.7/modules/concepts/hooks/list-of-hooks/,可能没有任何钩子来处理我在这个SO问题的标题中描述的情况。

我错了吗?如果是:钩子是什么?如果没有:我该如何处理这个用例(当用户触发这个事件时,我真的需要执行一个程序(?

我正在寻找的钩子的示例是:actionDeleteCustomerAddressAfter(当然它不存在(

您可以使用在添加或更新任何其他对象时调用的ObjectModel中的钩子,在您的例子中是Address

如果检查功能add():

public function add($auto_date = true, $null_values = false)
{
...
// @hook actionObject*AddBefore
Hook::exec('actionObjectAddBefore', array('object' => $this));
Hook::exec('actionObject' . $this->getFullyQualifiedName() . 'AddBefore', array('object' => $this));
...
// @hook actionObject*AddAfter
Hook::exec('actionObjectAddAfter', array('object' => $this));
Hook::exec('actionObject' . $this->getFullyQualifiedName() . 'AddAfter', array('object' => $this));
...
}

和CCD_ 6;

public function update($null_values = false)
{
// @hook actionObject*UpdateBefore
Hook::exec('actionObjectUpdateBefore', array('object' => $this));
Hook::exec('actionObject' . $this->getFullyQualifiedName() . 'UpdateBefore', array('object' => $this));
...
// @hook actionObject*UpdateAfter
Hook::exec('actionObjectUpdateAfter', array('object' => $this));
Hook::exec('actionObject' . $this->getFullyQualifiedName() . 'UpdateAfter', array('object' => $this));
...
}

然后您可以在模块中使用以下挂钩:

actionObjectAddressAddBefore

actionObjectAddressAddAfter

actionObjectAddressUpdateBefore

actionObjectAddressUpdateAfter

没有挂钩。

更糟糕的解决方案是搜索删除邮政地址的方法,并在那里插入您的代码。

一个更好的解决方案是:创建一个新的钩子(甚至是actionDeleteCustomerAddressAfter(,并在删除邮政地址的方法中触发钩子。

Hook::exec('actionDeleteCustomerAddressAfter ', array('id_customer' => (int)$customer->id));

相关内容

  • 没有找到相关文章

最新更新