首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Magento -用户创建新帐户时重定向(类似于使用setBeforeAuthUrl)

问Magento -用户创建新帐户时重定向(类似于使用setBeforeAuthUrl)
EN

Stack Overflow用户
提问于 2011-10-15 16:58:26
回答 2查看 6.2K关注 0票数 0

我有以下控制器操作,如果没有用户登录,它将重定向到登录页面:

代码语言:javascript
复制
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,一旦用户登录,他/她就被重定向回此操作。

问题:

如果用户没有登录,而是创建一个帐户,他/她将被重定向到主页,而不是setBeforeAuthUrl中设置的url。

问题:

是否有类似于setBeforeAuthUrl的东西也适用于创建帐户?或者怎样才能达到预期的效果?

(Magento版本1.6)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-20 13:15:27

找到解决办法了。

首先,setBeforeAuthUrl($url) 为“登录”和“新帐户创建”提供!

主要区别(以及我出现问题的原因)是,对于“新帐户创建”,Magento检查$url是否在当前商店的域名内,如果不是,则重定向到"My Account“页面。而“登录”的重定向则重定向到任何$url。

我不知道这是一个bug还是一个特性(我使用的是V1.6.0.0)。

因此,只需确保重定向到当前存储区的域名中的url --特别是在Multi配置中。

票数 0
EN

Stack Overflow用户

发布于 2011-10-17 02:48:04

您可以尝试使用以下扩展名。http://www.magentocommerce.com/magento-connect/MagePsycho/extension/3763/custom_login_redirect

或者您也可以打开app/code/core/Mage/Customer/controllers/AccountController.php并在第328行编辑周围查找createPostAction()函数:

代码语言:javascript
复制
     $url = $this->_welcomeCustomer($customer);
     $this->_redirectSuccess($url);

至

代码语言:javascript
复制
     $url = 'http://www.mycustomrediurecturl.com';
     $this->_redirectSuccess($url);

如果您想要这样做,最好的方法是覆盖控制器,添加配置选项,并使其成为一个模块:)

干杯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7779259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档