Mam szablon do logowania przy pomocy funkcji wp_login_form()
. Teraz Jeśli użytkownik wprowadzić błędne hasło lub nazwa użytkownika będzie przekierować mnie do tej samej strony z argumentem login=failed
z następującego kodu:jak odzyskać błąd wp w niestandardowym formularzu logowania
add_action('wp_login_failed', 'front_end_login_fail');
function front_end_login_fail($username) {
$_SESSION['uname'] = $username;
// Getting URL of the login page
$referrer = $_SERVER['HTTP_REFERER'];
$login_failed_error_codes = array('empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password');
// if there's a valid referrer, and it's not the default log-in screen
if(!empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin')) {
wp_redirect(get_permalink(93) . "?login=failed");
exit;
}
}
Teraz ta funkcja działa ok, ale teraz jak za wordpress funkcjonalności, które zapewniają następujące:
1.Jeżeli użytkownik wchodzi prawda podając nazwę użytkownika, ale źle hasło pokaże błąd jako „incorrect_password”
2.Jeżeli użytkownik wchodzi fałszywy podając nazwę użytkownika, ale prawda hasło pokaże błąd jak „invalid_username”
3.Jeżeli użytkownik wchodzi źle podając nazwę użytkownika, ale źle hasło pokaże błąd jako "invalidcombo"
Dodaj itd proszę sprawdzić zmienne $ login_failed_error_codes w kodzie ... Zrobiłem trochę wyszukiwania. Mam klasę o nazwie "WP_error". Ale nie wiem, jak to działa z tym kodem.
Po prostu utknąłem w jak przekazać obiekt WP_error z wp-login.php do mojego szablonu csutom?
Dzięki ... każda pomoc byłaby przydatna.
thx za odpowiedź pozwól mi sprawdzić – vrajesh
działa dobrze..bravo, doskonała, dobra robota THX ... !!! – vrajesh