【发布时间】:2025-12-07 14:55:01
【问题描述】:
我目前正在开发一个 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 结尾(这是默认值?)
在模型中,我在 chromes 网络选项卡中看到加载了正确的页面,但不知何故它不会重定向到该页面。
如果您需要有关该问题的更多信息,请告诉我。
编辑 1:去掉了第二个 Mage::getURL,仍然没有重定向。
编辑 2:我想如果我能以某种方式“劫持”对 opcheckout.js 的响应,它就可以进行重定向。或者我应该添加一个额外的 js 来监听吗?我认为因为漏洞是由 AJAX 调用触发的,所以重定向不会发生在正确的位置。欢迎更多想法。
编辑 3:我目前试图弄清楚如何为提到的 opcheckout.js 构建响应,该响应不会触发下一步但会触发重定向
【问题讨论】:
-
你有两个嵌套的
Mage::getUrl(),这可能是为什么觉得奇怪? -
感谢您的提示,我编辑了问题。它没有将目标加载到 chrome 网络选项卡,但仍然没有重定向。
标签: magento