我尝试覆盖一个模块中的 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/