我尝试在一个模块中覆盖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。
谢谢。
莱克斯
答案 0 :(得分:2)
试
<WP_Ajaxcart_Checkout before="Mage_Checkout">WP_Ajaxcart_Checkout</WP_Ajaxcart_Checkout>