我在magento的结帐过程中有一个钩子,在观察者中:checkout_controller_onepage_save_shipping_method。一旦用户在 Magento 中选择了一种运输方式,然后单击“下一步”按钮以保存运输方式并继续结帐过程,就会发生此观察者操作。
我编写的代码有时可能会告诉用户(取决于各种因素,例如购物车物品和它们被运送到的状态)他可能不会继续结帐过程,而是必须致电商店以获得特殊的运输说明。
常规重定向功能在 onepage checkout 中不起作用,因为它包含在 AJAX 脚本中,我尝试了以下方法:
Mage::getSingleton('core/session')->addError('The shipping required for one of the products you are attempting to order..');
$response1 = $observer->getResponse();
$url = Mage::getUrl('checkout/cart');
$response1->setRedirect($url);
和
Mage::throwException($this->__('The shipping required for one of the products you are attempting to order requires special instructions, please call us.'));
$observer->getRequest()->setParam('return_url','http://www.google.com/');
exit;
和
Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
Mage::app()->getResponse()->sendResponse();
exit;
但这些都不起作用。我相信我必须重写 OnePageController.php 中的一些函数,但我不知道我需要更新什么。任何帮助将不胜感激。谢谢!