我尝试在一个模块中覆盖 2 个控制器。这些都是 Checkout 控制器。- OnepageController - CartController
我的购物车控制器工作正常。但我的单页控制器不会覆盖。难道你不能覆盖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。
谢谢你。
莱克斯