聋人,当我的客户登录Magento时,他/她被重定向到其帐户页面。
我想将客户重定向回他之前访问过的产品/页面。
我怎样才能在Magento中这样做?我想观察者应该是最好的方式,但我不知道从哪里开始。
谢谢!
答案 0 :(得分:5)
<a href="<?php echo Mage::getUrl('customer/account/login', array('referer' => Mage::helper('core')->urlEncode($this->helper('core/url')->getCurrentUrl())))?>" >Log In</a>
如果已注销的客户在您网站的任何页面上,一旦他们点击此锚标记,它将引导他们登录页面,在他们成功登录后,他们被重定向到他们点击时所在的页面锚标记。
这是Magento原始“Top links”逻辑中Login链接的替代/模拟器。
答案 1 :(得分:4)
在产品页面上添加这些代码
<?php Mage::getSingleton('customer/session')->setBeforeAuthUrl($this->helper('core/url')->getCurrentUrl()); ?>
答案 2 :(得分:1)
我已将magento登录信息放入灯箱弹出框中,因此在设置引用网址之前,此页面上的代码就是这样。希望它有所帮助。
<?php
$current_url = $this->helper('core/url')->getCurrentUrl();
$current_session = Mage::getSingleton('customer/session');
if(isset($current_session)) $current_session->setData("before_auth_url", $current_url);
?>
您也可以将它放在头部,以便在每个页面上设置before_auth_url。但请确保将其包装在条件中,以便它不会在登录pae本身上设置before_auth_url。以下是我用来执行此操作的代码。
<?php
if (! Mage::helper('customer')->isLoggedIn()) {
$current_url = $this->helper('core/url')->getCurrentUrl();
if((strpos($current_url, 'login') > -1) || (strpos($current_url, 'sign-in') > -1) || (strpos($current_url, 'checkout') > -1) ) {
} else {
$current_session = Mage::getSingleton('customer/session');
if(isset($current_session)) $current_session->setData("before_auth_url", $current_url);
}
}
?>
答案 3 :(得分:0)
不太好但是有效。
这可能会对你有所帮助
$ redirectUrl = $ _SERVER ['HTTP_REFERER']; echo'document.location.href =“'。$ redirectUrl。'”;';
答案 4 :(得分:-1)
扩展程序Custom Login Redirect Pro可以为您提供帮助。您可以使用短代码{{referer}}重定向到referer。