【发布时间】:2014-10-28 04:29:09
【问题描述】:
我正在努力解决与某些 Magento 观察者重定向相关的特殊小问题。
我写了一个扩展并让一个观察者参与“checkout_submit_all_after”事件,结果很好。一旦付款方式为“发票”,我的小扩展程序就会自动创建发票并将订单状态设置为处理中。不幸的是,在单页结帐中提交订单后的重定向不再起作用。它总是重定向到“checkout/cart”而不是“checkout/onepage/success”。
有人知道我做错了什么吗?
这是我的代码:
class Shostra_AutoInvoice_Model_Order_Observer
{
public function __construct()
{
}
public function auto_create_invoice($observer)
{
$order = $observer->getEvent()->getOrder();
if (!$order->hasInvoices()) {
$payment = $order->getPayment()->getMethodInstance()->getTitle();
Mage::log("payment method: " . $payment);
if($payment=="Rechnung"){
Mage::log("autocreating invoice");
$invoice = $order->prepareInvoice();
$invoice->register();
$invoice->pay();
$invoice->save();
$order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true)->save();
Mage::log("invoice created and saved");
}
$this->addComment('Order automatically set to paid.');
} else {
$this->addComment('no invoices found.');
}
$response = $observer->getResponse();
$response->setRedirect(Mage::getUrl('checkout/onepage/success'));
Mage::getSingleton('checkout/session')->setNoCartRedirect(true);
}
}
非常感谢!
【问题讨论】: