Giriş yaptıktan sonra kullanıcıyı yönlendir


9

Kullanıcıyı giriş yaptıktan sonra "Hesabım" sayfası yerine "Ana Sayfa" sayfasına yönlendirmek istedim ve bunu kullanarak başarılı bir şekilde başardım

<customer_login>

Etkinlik.

Ama ben de istemiyorum sayfa ödeme giriş yaparken ben de ana sayfasına yönlendirildi.

Aşağıda benim gözlemci işlevim var

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

}

Herhangi biri lütfen, kullanıcı giriş sayfasından giriş yaptıktan sonra kullanıcının ana sayfaya yönlendirmesini nasıl engelleyebilirim?

Teşekkür ederim.

Yanıtlar:


11

Sağolun beyler.

Aşağıda benim için çalışan gözlemci işlevi var

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

Bu nerede ?
Pratik

CSS'ye yerleştirmeli miyim? Hangi dosya demek istiyorsun?
Pratik

7

Önce müşteri yapılandırmanızı değiştirmelisiniz:

resim açıklamasını buraya girin

Sonra referrerformda bir param kullanın . Örneğin

<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

bunu dene

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

Bunu nereye yazmalıyım?
Pratik

3

Tüm yorumları burada özetlemek gerekirse:

Bir config.xml dosyası alın ve bunun gibi kullanıcı arabirimi alanında customer_login için bir etkinlik kaydedin

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

Bundan sonra, müşteri oturumunun "kimlik doğrulamasından" URL'sini değiştirmek için bu gözlemci yöntemi uygulamanız gerekir. Bu değişken, giriş yaptıktan sonra nereye yönlendirileceğini kontrol etmek için müşterinin AccountController'ında kullanılacaktır.

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()Yönlendiricinin ödeme sayfanız olup olmadığını görmek zorunda olduğunuz durumda kullanabilirsiniz ve sonuç olarak hareket edin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.