Php 从购物车中删除项目后,Magento重定向到主页 问题:
我们用的是Magento ver。1.7.0.1我们遇到了一个问题,用户从购物车中删除一个项目,购物车将重定向回主页,而不是传统上只返回到结帐页面(即使没有项目) 背景 我们在登台服务器上的子文件夹中设置了站点,它可以完美地工作 这两种情况之间可能会有什么不同?服务器本身非常相似。Ubuntu 10.04、PHP5.3+等 我只能认为这可能是一个令人沮丧的问题(但没有运气追踪到这一点)Php 从购物车中删除项目后,Magento重定向到主页 问题:,php,magento,checkout,Php,Magento,Checkout,我们用的是Magento ver。1.7.0.1我们遇到了一个问题,用户从购物车中删除一个项目,购物车将重定向回主页,而不是传统上只返回到结帐页面(即使没有项目) 背景 我们在登台服务器上的子文件夹中设置了站点,它可以完美地工作 这两种情况之间可能会有什么不同?服务器本身非常相似。Ubuntu 10.04、PHP5.3+等 我只能认为这可能是一个令人沮丧的问题(但没有运气追踪到这一点) 我确实尝试了建议的“快速修复”,但遗憾的是,没有运气。因为这只发生在您的实时服务器上,而不是临时服务器上,似乎
我确实尝试了建议的“快速修复”,但遗憾的是,没有运气。因为这只发生在您的实时服务器上,而不是临时服务器上,似乎不太可能是代码相关的问题。尝试在FireFox中安装并启用扩展插件TamperData后执行此操作。当你一步一步地完成这些步骤时,你应该能很好地了解到站点试图将你发送到哪里,幸运的是,你会在那里看到一个额外的重定向,它会立即点击正在发生的事情。除此之外,请确保已启用日志记录(系统>配置>开发人员>日志设置),并检查是否没有发生实际错误 deleteAction调用_redirectReferer,传入
*/*
(这反过来应该成为签出/购物车
)。_redirectReferer函数遵循3条路径
基于这些事实,您可能会立即假定步骤3正在发生,但由于deleteAction正在传递参数,因此不可能通过步骤2,因为始终存在默认url。我通过以下步骤解决了此问题 导航到“app\code\core\Mage\Checkout\controllers\CartController.php”。 找到“
deleteAction()
”函数,该函数将如下所示
公共功能删除操作()
{
您需要将行“$this->\u redirectReferer(Mage::getUrl('*/*');”
更改为$this->\u redirect('checkout/cart');
。因此,现在函数如下所示
public function deleteAction()
{
$id = (int) $this->getRequest()->getParam('id');
if ($id) {
try {
$this->_getCart()->removeItem($id)
->save();
} catch (Exception $e) {
$this->_getSession()->addError($this->__('Cannot remove the item.'));
Mage::logException($e);
}
}
$this->_redirect('checkout/cart');
}
以上不是一种提供的方法。我只是解释了调试的位置。尝试并重写上述函数。这是提供的方法
有关更多信息,请参阅此
谢谢
public function deleteAction()
{
$id = (int) $this->getRequest()->getParam('id');
if ($id) {
try {
$this->_getCart()->removeItem($id)
->save();
} catch (Exception $e) {
$this->_getSession()->addError($this->__('Cannot remove the item.'));
Mage::logException($e);
}
}
$this->_redirect('checkout/cart');
}