Chuyển hướng người dùng sau khi đăng nhập


9

Tôi muốn chuyển hướng người dùng đến trang "Trang chủ" thay vì trang "Tài khoản của tôi" sau khi đăng nhập và tôi đã thành công khi sử dụng trang này

<customer_login>

biến cố.

Nhưng tôi cũng đã được chuyển hướng đến trang chủ trong khi tôi đăng nhập từ thanh toán onepage mà tôi không muốn.

Dưới đây là chức năng quan sát viên của tôi

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

}

Có ai có thể hướng dẫn làm thế nào tôi có thể ngăn người dùng chuyển hướng nó đến trang chủ sau khi đăng nhập từ thanh toán onepage không?

Cảm ơn bạn.

Câu trả lời:


11

Cảm ơn các bạn.

bên dưới là chức năng quan sát làm việc cho tôi

 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('');
    }

Đây là đâu ?
Pratik

Tôi có nên đặt nó trong CSS? Bạn có ý nghĩa gì?
Pratik

7

Trước tiên bạn nên thay đổi cấu hình khách hàng của mình:

nhập mô tả hình ảnh ở đây

Sau đó sử dụng một referrerparam trên mẫu. Ví dụ

<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">

4

thử đi

<?php Mage::getSingleton('customer/session')->setBeforeAuthUrl($this->getBaseUrl()); ?>

Viết cái này ở đâu?
Pratik

3

Chỉ cần tóm tắt tất cả các ý kiến ​​ở đây:

Lấy một tệp cấu hình và đăng ký một sự kiện cho customer_login trong khu vực lối vào như thế này

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

Sau đó, bạn phải triển khai phương thức quan sát viên đó để thay đổi url "sau auth" của phiên khách hàng. Biến này sẽ được sử dụng trong AccountContoder của khách hàng để kiểm tra nơi chuyển hướng sau khi đăng nhập.

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

Bạn có thể sử dụng Mage::helper('core/http')->getHttpReferer()trong điều kiện bạn đã phải xem nếu người giới thiệu là trang thanh toán của bạn và do đó hành động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.