Prestashop后台动态挂钩(事件)不工作


Prestashop Back-Office dynamic hooks (events) not working

嗨,我正在Prestashop上为我的公司开发一个自定义模块,我需要一些帮助。我最近在Magento上开发了同样的插件,但在这里我遇到了一些事件问题(也称为动态挂钩)。

我正在尝试使用后端的动态挂钩来管理产品库存。尽管我已经在install()方法中注册了钩子,但我无法在我的模块上捕获prestashop后端事件:

function install() {
   if (parent::install() == false
    || !$this->registerHook('home')
    || !$this->registerHook('productFooter') 
    || !$this->registerHook('orderConfirmation') 
    || !$this->registerHook('shoppingCart')
    || !$this->registerHook('actionProductDelete')
    || !$this->registerHook('actionProductUpdate')) {
    return false;
}
//default configuration values
...

并为每种方法放置了特定的方法。

public function hookActionProductDelete($params) { ... }

我正在记录双方的所有过程。在我的模块上,使用firePHPFileLoggerCore,在Prestashop的核心类上,使用Prestashop的FileLoggerCore调度事件。

在Product类上发现的类似(actionProductDelete)的事件已被调度,但我无法捕获它们。

我注意到的另一点是钩子名称在prestashop版本之间会发生变化。在上一个1.5版本中,钩子比以前的版本多得多。在1.3到1.5的版本中可以使用相同的挂钩?

很抱歉我的英语不好,提前表示感谢。

  1. 检查你的模块是否挂在actionProductDelete挂钩上的"admin>modules>positions"

  2. 您可以使用旧的挂钩名称来实现PS1.3-1.5的兼容性,请查看PS_hook_aliasDB表。对于1.5之前不存在的钩子,我认为你需要覆盖1.4&1.3 的代码修改