我无法从观察者那里在 Magento 中创建工作重定向。
据我所知,有许多事件与它们一起获得了响应对象(在$observer
对象中)。另一种方法是使用类似的东西
Mage::app()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
正如伟大的艾伦风暴在这里提到的https://stackoverflow.com/a/4730200/1700048。
不幸的是,这对我不起作用,即使我sendResponse()
这样添加:
Mage::app()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'))->sendResponse();
例如:
我想阻止某些电子邮件地址订阅时事通讯。newsletter_subscriber_save_before
因此,我为事件创建了一个观察者。
在我的观察者方法中,我检查了一些情况,如果它们触发了我想阻止保存时事通讯订阅。我的计划是添加这样的错误:
Mage::getSingleton('checkout/session')->addError('Email is spam!');
并让当前页面重新加载(显示错误消息),并使用如上所示的重定向(checkout/cart
在示例中只是为了看到它确实有效)。
不幸的是,重定向不起作用。为什么sendResponse
在这种情况下不发送响应?
感谢帮助 :)