Magento-在用户创建新帐户时重定向回(类似于使用SetbeForAuthUrl)
我有以下控制器操作,如果没有用户登录,则会重定向到登录页面:Magento-在用户创建新帐户时重定向回(类似于使用SetbeForAuthUrl),magento,Magento,我有以下控制器操作,如果没有用户登录,则会重定向到登录页面: public function requireloginAction() { if(!Mage::getSingleton('customer/session')->isLoggedIn()) { // Not logged in // Save requested URL for later redirection Mage::getSingleton('customer/session')-&
public function requireloginAction() {
if(!Mage::getSingleton('customer/session')->isLoggedIn()) {
// Not logged in
// Save requested URL for later redirection
Mage::getSingleton('customer/session')->setBeforeAuthUrl($this->getRequest()->getRequestUri());
header("Status: 301");
header('Location: '.Mage::helper('customer')->getLoginUrl()); // send to the login page
}
else {
// Logged in
.. do something ..
}
}
通过使用setBeforeAuthUrl,一旦用户登录,他/她将重定向回此操作
问题:
如果用户没有登录,而是创建了一个帐户,那么他/她将被重定向到主页,而不是setbeforauthURL中设置的url
问题:
是否有类似于setbeforauthURL的东西也可以用于帐户创建?或者我如何才能达到预期的效果
(Magento 1.6版)您可以尝试使用以下扩展 或者,您也可以打开app/code/core/Mage/Customer/controllers/AccountController.php并在第328行的周围查找createPostAction()函数编辑:
$url = $this->_welcomeCustomer($customer);
$this->_redirectSuccess($url);
到
如果您想以一种很好的方式覆盖控制器,请添加配置选项并将其设置为模块:)
干杯找到了解决办法
首先,setBeforeAuthUrl($url)对“登录”和“创建新帐户”都有效
主要区别(也是我遇到问题的原因)是,对于“创建新帐户”,Magento会检查$url是否在当前商店的域名内,如果不在,则会重定向到“我的帐户”页面。而“登录”的重定向将重定向到任何$url
我不知道这是一个bug还是一个特性(我使用的是V1.6.0.0)
因此,只需确保重定向到当前存储的域名内的url,尤其是在多存储配置中 我正在寻找php代码。尽管如此,我还是检查了扩展(以检查它是否具有所需的代码),但当用户创建新帐户时,此扩展不会重定向(这是我正在寻找的功能)。好的,在这种情况下没有问题,只需转到app/code/core/Mage/Customer/controllers/AccountController.php查找createPostAction()在第328行附近,查找所需url的$this\u>\ u redirectSuccess($url)change$url,您就可以开始了。您好,我想知道该解决方案是否适合您?这不是一个bug,而是出于安全原因。
$url = 'http://www.mycustomrediurecturl.com';
$this->_redirectSuccess($url);