我需要在magento网站上插入一些联属标签。问题是,我无法找到捕获付款确认事件的位置,以将用户重定向到success.phtml 感谢
答案 0 :(得分:0)
订单/付款地点流程由Mage_Checkout_OnepageController控制器类中的saveOrderAction()操作方法执行(在'app / code / core / Mage / Checkout / controllers / OnepageController.php'中)。
订单成功后,客户将被重定向到您提到的成功页面,该页面由Mage_Checkout_OnepageController中的successAction()操作方法处理。
联盟网络标签最有可能直接放在'success.phtml'中。您应该可以访问该模板文件中所需的所有订单数据。但是如果由于某种原因你需要在模板文件中做更多的工作,你可以处理在successAction()中抛出的'checkout_onepage_controller_success_action'事件:
/**
* Order success action
*/
public function successAction()
{
$session = $this->getOnepage()->getCheckout();
if (!$session->getLastSuccessQuoteId()) {
$this->_redirect('checkout/cart');
return;
}
$lastQuoteId = $session->getLastQuoteId();
$lastOrderId = $session->getLastOrderId();
$lastRecurringProfiles = $session->getLastRecurringProfileIds();
if (!$lastQuoteId || (!$lastOrderId && empty($lastRecurringProfiles))) {
$this->_redirect('checkout/cart');
return;
}
$session->clear();
$this->loadLayout();
$this->_initLayoutMessages('checkout/session');
Mage::dispatchEvent('checkout_onepage_controller_success_action', array('order_ids' => array($lastOrderId)));
$this->renderLayout();
}