0

我需要在 magento 网站中插入一些附属标签。问题是,我找不到付款确认事件在哪里被捕获以将用户重定向到success.phtml 谢谢

4

1 回答 1

0

订单/支付过程由 Mage_Checkout_OnepageController 控制器类(在“app/code/core/Mage/Checkout/controllers/OnepageController.php”中)中的 saveOrderAction() 操作方法进行。

一旦订单成功,客户将被重定向到您提到的成功页面,该页面由 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();
}
于 2013-05-14T21:31:35.417 回答