gpt4 book ai didi

magento - 结账时重定向

转载 作者:行者123 更新时间:2023-12-02 19:40:22 25 4
gpt4 key购买 nike

我目前正在开发一个 magento 支付模块,该模块必须检查用户个人资料/帐户中的某些字段是否已设置。

如果它们不存在/没有内容,我想要 1.重定向到/customer/account/edit/ 2. 显示必须填写相关字段的通知

或者反过来。

这是由 Magentos 核心 OnePage Checkout 的 AJAX 调用初始化的。

我尝试了几种方法,例如

Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('customer/account/edit/'));
Mage::app()->getResponse()->sendResponse();
exit;

还有其他事情。

从观察者那里我以某种方式得到了重定向,但总是以/default/checkout/cart 结束(这是默认的?)

在模型中,我在 chrome 网络选项卡中看到加载了正确的页面,但不知何故它不会重定向到该页面。 No redirect but loaded to dev tools

如果您需要有关该问题的更多信息,请告诉我。

编辑1:去掉了第二个Mage::getURL,仍然没有重定向。

编辑2:我想如果我能以某种方式“劫持”opcheckout.js 的响应,它就可以进行重定向。或者我应该添加一个额外的 js 来监听?我认为因为漏洞是由 AJAX 调用触发的,所以重定向不会发生在正确的位置。欢迎更多想法。

编辑 3:我目前尝试弄清楚如何为提到的 opcheckout.js 构建响应,该响应不会触发下一步,但会触发重定向

最佳答案

解决了

解决方案:

创建一个覆盖

  • /app/code/core/Mage/Checkout/controllers/OnepageController.php

这应该是例如

  • app/code/local/{NameSpace}/{ModuleName}/controllers/OnepageController.php

特别注意文件夹中的“s”是复数而不是单数。我花了十分钟才明白为什么我的 Controller 不工作。

Controller 应该像这样构建:

require_once Mage::getModuleDir('controllers', "Mage_Checkout").DS."OnepageController.php";
class MOOD_BonimaScoreIdent_OnepageController extends Mage_Checkout_OnepageController {
public function indexAction(){
parent::indexAction();
}

public function savePaymentAction(){
//just an example
$result['redirect']=Mage::getUrl('customer/account/edit/');
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
return;
}
}

包含 Controller 覆盖的 config.xml 部分很简单:

<frontend>
<routers>
<checkout>
<args>
<modules>
<MyModuleName before="Mage_Checkout">Namespace_MyModuleName</MyModuleName>
</modules>
</args>
</checkout>
</routers
</frontend>

关于magento - 结账时重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30713360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com