(generally Mage/Checkout/controllers/OnepageController.php)
<?php public function failureAction() { $lastQuoteId = $this->getOnepage()->getCheckout()->getLastQuoteId(); $lastOrderId = $this->getOnepage()->getCheckout()->getLastOrderId(); if ($lastQuoteId && $lastOrderId) { $orderModel = Mage::getModel('sales/order')->load($lastOrderId); if($orderModel->canCancel()) { $quote = Mage::getModel('sales/quote')->load($lastQuoteId); $quote->setIsActive(true)->save(); $orderModel->cancel(); $orderModel->setStatus('canceled'); $orderModel->save(); Mage::getSingleton('core/session')->setFailureMsg('order_failed'); Mage::getSingleton('checkout/session')->setFirstTimeChk('0'); $this->_redirect('kcheckout/index/payment', array("_forced_secure" => true)); return; } } if (!$lastQuoteId || !$lastOrderId) { $this->_redirect('checkout/cart', array("_forced_secure" => true)); return; } $this->loadLayout(); $this->renderLayout(); } ?>
0 Comments