我正在使用 5.2 插件系统开发 Shopware 插件,但无法将钩子注册到 sBasket 模块的方法中。
我想要实现的是在从购物篮中删除文章时收到通知,以便能够自动删除其他文章(这些文章是相关的,如果另一个文章放在篮子里是没有意义的一个被删除)。
到目前为止,我的插件引导程序如下所示:
class MyTestPlugin extends \Shopware\Components\Plugin {
public static function getSubscribedEvents() {
return [
'Shopware_Modules_Basket_AddArticle_Start' => 'onBasketAddArticle',
'sBasket::sDeleteArticle::after' => 'onBasketDeleteArticle'
];
}
// Handler methods declared here...
}
Run Code Online (Sandbox Code Playgroud)
“AddArticle_Start”事件注册按预期工作,即当我将文章添加到篮子时调用“onBasketAddArticle”处理程序。但是,不会调用 sBasket 钩子。
我怀疑我在这里混淆了旧插件系统和新插件系统,并且钩子可能必须以另一种方式注册而不是事件,但我在 Shopware 文档中找不到任何内容。
任何帮助表示赞赏。
最后,我找到了解决方案。对于遇到相同问题的任何人:
Shopware 有很多缓存,其中之一是代理缓存。Shopware 创建包含有关已注册钩子信息的代理类,并且在更新插件时不会重建这些类。
因此,如果您添加/删除/更改挂钩注册,则必须清除代理缓存。在后端转到设置/缓存/性能/缓存/性能,选中复选框“代理和元数据”,然后单击清除按钮。
| 归档时间: |
|
| 查看次数: |
2273 次 |
| 最近记录: |