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

Is there a hook triggered when the frontend PS1.7 user deletes a postal address in its account?

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

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

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

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

这个没有钩子。

搜索删除邮政地址的方法并在其中插入代码的更糟糕的解决方案。

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

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

您可以使用 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));

    ...
}

update()

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