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);