我只想让客户在登录到他的 Magento 帐户时留在他的当前页面上。
是的,我知道 Magento 后端选项(位于:系统 > 配置 > 客户 > 客户配置 > 登录选项),但是当我将此设置设置为“否”时,它仍然会在登录后将客户重定向到他的帐户仪表板。
真的没有简单的方法让客户停留在他登录的同一页面上吗?
我知道 Magento connect Psycho 扩展或其他东西 :) 但我只需要一个代码来实现。
蒂亚
我只想让客户在登录到他的 Magento 帐户时留在他的当前页面上。
是的,我知道 Magento 后端选项(位于:系统 > 配置 > 客户 > 客户配置 > 登录选项),但是当我将此设置设置为“否”时,它仍然会在登录后将客户重定向到他的帐户仪表板。
真的没有简单的方法让客户停留在他登录的同一页面上吗?
我知道 Magento connect Psycho 扩展或其他东西 :) 但我只需要一个代码来实现。
蒂亚
你应该设置NO
为System > Configuration > Customers > Customer Configuration > Login Options
并且在您的login.phtml
文件(persistent/customer/form
以及customer/form
您的模板文件夹中)中,您必须将您的操作更改<form>
为:
action="<?php echo str_replace('login', 'loginPost', $this->helper('customer')->getLoginUrl()) ?>"
或者
试试这个免费的扩展
http://www.magentocommerce.com/magento-connect/customer-redirect-after-login-5446.html
可以在登录表单phtml文件中添加以下代码
$refererUrl = $this->getRequest()->getServer('HTTP_REFERER');
Mage::getSingleton('customer/session')->setBeforeAuthUrl($refererUrl);
我猜这在某种程度上取决于 Magento 版本。在 1.7 中,如果您检查 @Rajat ( loginPostRedirect
) 提到的功能,您会看到您提到的选项只会在查询字符串中有引用参数时阻止客户最终出现在仪表板上。如果您将该查询参数添加到登录表单的操作中,您应该很高兴。
对于重定向,您必须对客户控制器进行更改。
为了在您的控制器中进行更改,更好的选择是覆盖您的控制器。
您必须更改控制器中的 loginPostRedirect() 函数。
对此行进行更改
$session->setBeforeAuthUrl(Mage::helper('customer')->getAccountUrl());