登录后重定向用户


9

我想在登录后将用户重定向到“主页”页面而不是“我的帐户”页面,并且我成功地利用了

<customer_login>

事件。

但是,当我从不需要的单页结帐登录时,我也被重定向到主页。

下面是我的观察者功能

public function setRedirectOnLogin(){
    $session = Mage::getSingleton('customer/session');
    if (strpos($session->getBeforeAuthUrl(), 'checkout') === false)
        $session->setAfterAuthUrl(Mage::getBaseUrl());
    $session->setBeforeAuthUrl('');

}

从一页结帐登录后,谁能指导我如何阻止用户将其重定向到首页?

谢谢。

Answers:


11

感谢大伙们。

下面是为我工作的观察者功能

 public function setRedirectOnLogin(){
        $session = Mage::getSingleton('customer/session');
        if (strpos(Mage::helper('core/http')->getHttpReferer(), 'checkout') === false)
            $session->setAfterAuthUrl(Mage::getBaseUrl());  
        else             
            $session->setAfterAuthUrl(Mage::helper('core/http')->getHttpReferer());

        $session->setBeforeAuthUrl('');
    }

这是哪里
Pratik

我应该将它放在CSS中吗?您是指哪个文件?
Pratik 2015年

7

您应该首先更改客户配置:

在此处输入图片说明

然后referrer在表单上使用参数。例如

<form action="<?php
    echo $this->getUrl(
        'customer/account/loginPost',
        array(
            'referer' =>
            // Encode the base url, or whatever URL we want to go to
            Mage::helper('core')->urlEncode(Mage::getBaseUrl())
        )
    ) ?>" method="post">


3

只是在这里总结所有评论:

采取config.xml并像这样在前端区域中为customer_login注册一个事件

<frontend>
    <events>
        <customer_login>
            <observers>
                <your_module>
                    <class>your_module/observer</class>
                    <method>customerLogin</method>
                </your_module>
            </observers>
        </customer_login>
    </events>
</frontend>

之后,您必须实现该观察者方法以更改客户会话的“验证后” URL。此变量将在客户的AccountController中用于检查登录后重定向到的位置。

public function customerLogin($observer)
{
    $session = Mage::getSingleton('customer/session');
    if (strpos(Mage::helper('core/http')->getHttpReferer(), 'checkout') === false) {
        $session->setAfterAuthUrl(Mage::getBaseUrl());
    } else {
        $session->setAfterAuthUrl(Mage::helper('core/http')->getHttpReferer());
    }

    $session->setBeforeAuthUrl('');
}

2

您可以Mage::helper('core/http')->getHttpReferer()在已经必须查看引荐来源是否为您的结帐页面并因此采取行动的条件下使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.