如何在登录到特定页面后重定向,该页面取决于在magento中单击登录的页面?

时间:2012-09-26 12:15:07

标签: magento

如何在登录到特定页面后重定向,该页面取决于在magento中单击登录页面?我知道重定向会在AccountController.php中发生。但是如何获取客户登录页面的链接。我有两个不同的登录页面。

2 个答案:

答案 0 :(得分:10)

这实际上非常简单。您所要做的就是在您正在进行登录的页面上的某处插入下一个代码。

Mage::getSingleton('customer/session')->setBeforeAuthUrl(Mage::getUrl('*/*/*'));

它的作用 - 它将变量设置为客户会话,其中包含引荐来源页面的URL。如果设置了变量,AccountController会在登录后将该页面发回给您。

更新

以为我可能需要编辑帖子,因为信息不完整。正如我前段时间所了解的,实际上有两个会话密钥在登录后统治“返回/重定向”的逻辑:

  • before_auth_url:如果他的登录名/密码未通过验证,则应将此设置为页面,您希望用户查看
  • after_auth_url:这是您希望用户在成功登录后重定向到的网址

现在上述解决方案有效,因为如果未设置前者,Magento会自动设置after_auth_url = before_auth_url

以下是快速示例:您在Checkout上有登录表单。因此,您希望用户在登录后重定向回Checkout。您不希望用户在未输入有效凭据的情况下被重定向回结帐。而不是你希望他们留在登录页面,所以他们有能力请求忘记密码电子邮件或重新注册。一旦他们能够登录,您希望他们回到Checkout。

与用例听起来一样复杂,它实际上很容易实现,并且还没有在Magento Checkout中完成。所以这就是你需要设置的内容:

Mage::getSingleton('customer/session')
    ->setBeforeAuthUrl(Mage::getUrl('customer/account/login'));
Mage::getSingleton('customer/session')->setAfterAuthUrl(Mage::getUrl('*/*/*'));

那是所有人:)

答案 1 :(得分:0)

请检查一下。我想这就是你想要的。(MAGENTO 1.7)

登录Magento Admin。

转到系统 - >配置 - >客户配置 - >登录选项。

在下拉菜单中,可以选择在客户登录后重定向客户。

即。登录后是否将客户重定向到帐户控制面板。