OpenCart 3.0.2.0中如何为Journal3单页结账添加addEvent?
让OpenCart默认结账事件在Journal3单页结账中生效(OpenCart 3.0.2.0)
Journal3的单页结账将所有结账步骤整合到一个页面,默认OpenCart结账流程的部分事件钩子不会触发,需替换为Journal3对应的钩子,具体调整如下:
视图层支付区域事件替换
原默认事件:$this->model_setting_event->addEvent('custom_name', 'catalog/view/theme/default/template/checkout/payment_method/after', 'event_function');替换为Journal3单页结账的支付区域钩子:
$this->model_setting_event->addEvent('custom_name', 'catalog/view/theme/journal3/template/checkout/checkout/after_payment_methods', 'event_function');控制器层支付保存事件替换
原默认事件:$this->model_setting_event->addEvent('custom_name', 'catalog/controller/checkout/payment_method/save/after', 'event_function');替换为Journal3单页结账的支付保存钩子:
$this->model_setting_event->addEvent('custom_name', 'catalog/controller/checkout/checkout/savePayment/after', 'event_function');订单创建前事件无需修改
原事件catalog/model/checkout/order/addOrder/before不受Journal3单页结账影响,可继续使用:$this->model_setting_event->addEvent('custom_name', 'catalog/model/checkout/order/addOrder/before', 'event_function');
额外注意事项
- 钩子名称可能因Journal3版本略有差异,可通过以下方式确认:
- 后台进入扩展 > 事件,搜索
journal3相关事件列表; - 直接查看模板文件
catalog/view/theme/journal3/template/checkout/checkout.tpl,查找类似<?php echo $this->hook->output('钩子路径'); ?>的代码,获取准确钩子路径。
- 后台进入扩展 > 事件,搜索
- 若事件仍不触发,可开启OpenCart日志:进入系统 > 设置 > 编辑当前商店 > 服务器,将日志级别设为「警告」或「调试」,查看事件注册与调用的日志信息排查问题。
内容的提问来源于stack exchange,提问作者NewSmile
相关产品推荐
相关产品推荐

