在Magento登录后,将客户重定向回产品

时间:2011-10-28 10:00:29

标签: magento

聋人,当我的客户登录Magento时,他/她被重定向到其帐户页面。

我想将客户重定向回他之前访问过的产品/页面。

我怎样才能在Magento中这样做?我想观察者应该是最好的方式,但我不知道从哪里开始。

谢谢!

5 个答案:

答案 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。