Prestashop Back-Office动态挂钩(事件)不起作用

时间:2013-02-18 17:08:34

标签: php events hook observer-pattern prestashop

您好我正在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) { ... }

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

在Product类上找到的事件( actionProductDelete )会被调度,但我无法捕获它们。

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

对不起我的英语,并提前多多感谢。

1 个答案:

答案 0 :(得分:2)

  1. 检查您的模块是否挂在actionProductDelete hook上的“admin> modules> positions”

  2. 你可以使用旧的钩子名称来兼容PS 1.3-1.5,看看ps_hook_alias数据库表。对于在1.5之前不存在的钩子,我认为你需要覆盖1.4&代码修改1.3