magento - 覆盖 CartController 和 OnepageController

标签 magento overwrite

我尝试覆盖一个模块中的 2 个 Controller 。这些都是 Checkout Controller 。 - OnepageController - 购物车 Controller

我的购物车 Controller 可以工作。但我的一页 Controller 不会覆盖。难道不能覆盖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/controllers/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/controllers/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。

谢谢。

莱克斯

最佳答案

尝试

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

关于magento - 覆盖 CartController 和 OnepageController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10223606/

相关文章:

magento - 在 Magento 购物车中获取 bundle 产品项目

Magento 覆盖 block

C++ - 在覆盖期间调用析构函数时的类成员

php - Magento:在结帐时保存自定义地址属性

php - 找不到 setIsInProcess() 函数定义

Magento 产品可见性搜索在企业版 1.14 中不起作用

css - 如何从内联 CSS 覆盖 "left: 80%"

c - 使用 memcpy 时覆盖结构字段

java在另一个上绘制图像

javascript - 更改模板上的日期格式