您好我正在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的版本中可以使用相同的钩子吗?
对不起我的英语,并提前多多感谢。
答案 0 :(得分:2)
检查您的模块是否挂在actionProductDelete hook上的“admin> modules> positions”
你可以使用旧的钩子名称来兼容PS 1.3-1.5,看看ps_hook_alias数据库表。对于在1.5之前不存在的钩子,我认为你需要覆盖1.4&代码修改1.3