我需要在一个magento网站插入一些标签。问题是,我找不到捕获支付确认事件以将用户重定向到success. php的位置由于
订单/支付过程由Mage_Checkout_OnepageController控制器类(在'app/code/core/Mage/Checkout/controllers/OnepageController.php'中)中的saveOrderAction()操作方法执行。
一旦订单成功,客户将被重定向到您提到的成功页面,该页面由Mage_Checkout_OnepageController中的successAction()操作方法处理。
联盟网络标签应该直接放在'success. php '中。您应该可以访问该模板文件中所需的所有订单数据。但是,如果由于某种原因需要在模板文件中执行更多的工作,则可以处理在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();
}