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

时间:2011-10-15 16:58:27

标签: magento

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

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 Version 1.6)

2 个答案:

答案 0 :(得分:0)

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

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

     $url = $this->_welcomeCustomer($customer);
     $this->_redirectSuccess($url);

     $url = 'http://www.mycustomrediurecturl.com';
     $this->_redirectSuccess($url);

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

干杯

答案 1 :(得分:0)

找到解决方案。

首先,对于“登录”和“新帐户创建”,setBeforeAuthUrl($ url)可以正常工作

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

我不知道这是一个错误还是一个功能(我使用的是V1.6.0.0)。

因此,请确保重定向到当前商店域名中的网址 - 尤其是在多商店配置中。