如何在我们的自定义模块magento中覆盖购物车控制器优惠券操作

Kar*_*Skb 2 php magento

我有一个需要覆盖优惠券代码功能的模块

 <frontend>
    <routers>
        <customcoupons>
            <use>standard</use>
            <args>
                <module>Mycompany_Customcoupons</module>
                <frontName>customcoupons</frontName>
            </args>
        </customcoupons>
        <checkout><!-- Override code starts-->
             <args>
                 <modules>
                    <Mycompany_Customcoupons before="Mage_Checkout">Mycompany_Customcoupons</Mycompany_Customcoupons>
                </modules>
             </args>
        </checkout><!-- Override code ends-->
    </routers>
    <layout>
        <updates>
            <customcoupons>
                <file>customcoupons.xml</file>
            </customcoupons>
        </updates>
    </layout>
</frontend>
Run Code Online (Sandbox Code Playgroud)

如果我没有添加覆盖代码,我的自定义模块管理页面工作正常,但如果我添加<checkout>阻止它显示404页面.可能是什么问题呢?如何在此添加覆盖块?

Dha*_*ani 6

请在config.XML中写下这个

<global>
    <rewrite>
         <mycompany_customcoupons>
               <from><![CDATA[#^/checkout/cart/#]]></from>
               <to>/customcoupons/cart/</to>
         </mycompany_customcoupons>
    </rewrite>

</global>
Run Code Online (Sandbox Code Playgroud)

现在创建文件:app/code/local/Mycompany/Customcoupons/CartController.php

在CartController.php中,写下波纹管代码.

<?PHP

require_once 'Mage/Checkout/controllers/CartController.php';

class Mycompany_Customcoupons_CartController extends Mage_Checkout_CartController
{

   public function couponPostAction()
    {
         // Start You code here.
    }
}

?>
Run Code Online (Sandbox Code Playgroud)

  • 谢谢man :)在将`<to>/mycompany_customcoupons/cart/</ to>`更改为`<to>/customcoupons/cart/</ to>之后,它正常工作,因为我的模块`frontName`是`customcoupons` !! (2认同)