WordPress Hatalı Giriş Yönlendirmesi

Yaptığım incisözlük teması için bir arkadaştan “Hatalı üye girişinde wordpress şablonuna yönleniyor bunu nasıl engellerim?” şeklinde bir soru aldım.

Bende tabi giriştim kodlara, araştırmalara. Gördüğüm kadarıyla bu konuda da Türkçe içerik sıkıntılı. Sanıyorum üye girişi ve üye profilleri hakkında Türkçe kaynak çok az, herkes gereksiz yere eklentilerle sistemini boğuyor diye düşünüyorum.

Oysa bu yönlendirmeyi sağlamak çok kolay, tek bir fonksiyon ile tüm istediğimizi yapabiliriz.

Temamızın functions.php dosyasına aşağıda verdiğim kodları ekleyelim,

add_action( 'wp_login_failed', 'CakirEfekan_Hatali_Giris' );

function CakirEfekan_Hatali_Giris( $username ) {
 $referrer = $_SERVER['HTTP_REFERER']; // Hatalı giriş hangi adresten yapıldı?
 if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') ) {
 wp_redirect( $referrer . '?hoayda=hata' ); // Giriş yapılan adrese Get metodu ile veri gönderdik.
 exit;
 }
}

Gördüğünüz üzere bu fonksiyonu eklediğimiz vakit, üye giriş kısmında hata yapan bir site üyemiz, aynı sayfaya geri dönüyor.

Aynı zaman da get metodu ile veri gönderdiğimiz için bu veriyi sorgulayarak temanın istediğimiz bölmesinde uyarı verebiliriz.

Bu uyarıyı da şöyle ekrana yazdırabiliriz.

$eCakirHata = $_GET['hoayda']; // GET Metoduyla gelen veriyi değişkene atadık.
if($eCakirHata == "hata"){ // değişkenimizin içeriği hata ise 
echo "<script>alert('Dostum hatalı giriş yaptın.'); </script>"; // Uyarıyı verdik. Burayı kendinize göre düzenleyebilirsiniz.
}
else { } // değişkenimizin içeriği hata değilse hiç bir şey yapmıyoruz.

Bu kod ile birlikte yukarıda verdiğim fonksiyonu kullandığımızda hatalı giriş yapanlar, Dostum hatalı giriş yaptın.” uyarısını almakta.

Bu şekilde istediğiniz gibi düzenleyebilirsiniz, gereksiz eklentileri elverdikçe kullanmayın derim. Kendi gözünüzle gördüğünüz basit kodlamalar varken neden karmaşık yapılarla uğraşasınız ki?

Mutlulukla yaşayın…


Yayımlandı

kategorisi

,

yazarı:

Yorumlar

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir