覆盖CartController和OnepageController

时间:2012-04-19 07:38:44

标签: magento overwrite

我尝试在一个模块中覆盖2个控制器。这些都是Checkout控制器。 - OnepageController - CartController

我的购物车控制器有效。但我的onepage控制器不会覆盖。是不是你不能覆盖2个文件?

我的档案:

WP / Ajaxcart的/ etc / config.xml中

<?xml version="1.0"?>
<config>
    <modules>
       <WP_Ajaxcart>
           <version>0.1.0</version>
       </WP_Ajaxcart>
    </modules>
    <frontend>
        <routers>
            <checkout>
                <use>standard</use>
                <args>
                    <modules>
                        <WP_Ajaxcart before="Mage_Checkout">WP_Ajaxcart</WP_Ajaxcart>
                    </modules>
                </args>
            </checkout>
        </routers>
    </frontend>
</config>

WP / Ajaxcart /控制器/ OnepageController.php

<?php

require_once "Mage/Checkout/controllers/OnepageController.php";
class WP_Ajaxcart_Checkout_OnepageController extends Mage_Checkout_OnepageController
{

    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;
        }
        echo 'Do something else';
        //$session->clear();
        $this->loadLayout();
        $this->_initLayoutMessages('checkout/session');
        Mage::dispatchEvent('checkout_onepage_controller_success_action', array('order_ids' => array($lastOrderId)));
        $this->renderLayout();
    }

}

WP / Ajaxcart /控制器/ CartController.php

<?php

require_once "Mage/Checkout/controllers/CartController.php";
class WP_Ajaxcart_Checkout_CartController extends Mage_Checkout_CartController
{

    public function addAction()
    {
        echo 'test';
    }

}

我有人知道为什么它不会覆盖OnepageController.php。

谢谢。

莱克斯

1 个答案:

答案 0 :(得分:2)

<WP_Ajaxcart_Checkout before="Mage_Checkout">WP_Ajaxcart_Checkout</WP_Ajaxcart_Checkout>