Magento 中是否有观察者来检测结帐过程的开始?这将包括点击页面checkout/onepage/
or checkout/onestepcheckout/
。如果可能的话,我想避免覆盖控制器。
每个控制器操作都会导致多个目标事件被触发Mage_Core_Controller_Varien_Action (link) https://github.com/benmarks/magento-mirror/blob/1.7.0.2/app/code/core/Mage/Core/Controller/Varien/Action.php,所有动作控制器的超类。这些事件不同地涉及从模块路由器配置+控制器路径+操作派生的“完整操作名称”,以及正在请求的路由名称。
在标准单页结账的情况下,完整的操作名称是checkout_onepage_index
路线名称是checkout_onepage
.
渲染布局():
controller_action_layout_render_before_'.$this->getFullActionName()
预调度():
controller_action_predispatch_' . $this->getRequest()->getRouteName()
controller_action_predispatch_' . $this->getFullActionName()
发布调度():
controller_action_postdispatch_' . $this->getRequest()->getRouteName()
controller_action_postdispatch_' . $this->getFullActionName()
您观察到哪些事件取决于 OneStepCheckout 模块捕获路线的方式。这getRouteName()
如果您需要区分路由和模块,基于事件可能会很有用。您需要测试“客户已登录”和“客户已注销”场景。虽然预调度事件对于涉及重定向的逻辑是首选,但您需要平衡您的需求与重复的购物车/报价 + 客户会话逻辑。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)