2

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

4

2 回答 2

10

这实际上很容易。您所要做的就是在您正在从中进行Log In的页面上的某处插入下一个代码。

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

它的作用 - 它将变量设置为客户会话,该会话包含引荐页面的 url。AccountController如果设置了变量,将在登录后将您送回该页面。

更新

只是想我可能需要编辑帖子,因为信息不完整。因此,正如我前段时间所了解的,实际上有 2 个会话密钥来管理登录后“返回/重定向”的逻辑:

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

现在上面的解决方案起作用了,因为 Magento 自动设置after_auth_url=before_auth_url如果前者没有设置。

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

尽管该用例听起来很复杂,但它实际上很容易实现,并且在 Magento Checkout 中还没有完成。所以这里是你需要设置的:

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

这就是所有人:)

于 2012-09-26T13:02:38.520 回答
0

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

登录到 Magento 管理员。

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

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

即在登录或不登录后将客户重定向到帐户仪表板。

于 2013-06-06T12:06:33.703 回答