✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Zaloguj się za pomocą numeru telefonu w WordPress

38

Możliwe, że umieściłeś front-endowy formularz logowania na swojej stronie WordPress. I chcesz zezwolić użytkownikom na logowanie się za pomocą swojego numeru telefonu lub przy użyciu nazwy użytkownika/adresu e-mail. Zasadniczo pozwalasz użytkownikom na wprowadzenie jednego z wpisów z nazwy użytkownika / adresu e-mail / telefonu i hasła.

Zwróć uwagę, że ten samouczek nie ma na celu pokazania logowania za pomocą OTP. Zamiast tego dodam jeszcze jedną opcję numeru telefonu wraz z nazwą użytkownika i adresem e-mail. Dzięki temu Twoi użytkownicy mogą wybrać dowolną dogodną dla siebie opcję. Prawdopodobnie widziałeś tę opcję na Amazon. Amazon pozwala nam zalogować się za pomocą adresu e-mail lub numeru telefonu komórkowego.

Zamierzam stworzyć prosty formularz logowania. Na formularzu przesyłania napiszemy kod, który sprawdza poświadczenia w tle dla wszystkich 3 opcji (Nazwa użytkownika/E-mail/Telefon) oraz hasło.

Aby dodać numer telefonu w formularzu logowania, należy wstawić numer telefonu użytkownika w tabeli 'wp_usermeta’. Możesz to zrobić w momencie rejestracji użytkownika. Poniższy kod służy do dodania numeru telefonu użytkownika.

<?php $user_id = 1; $phone_number = 9999999999; add_user_meta( $user_id, 'user_phone', $phone_number);

Gdy już masz meta_klucz 'user_phone’ wraz z jego wartością w bazie danych, możesz dodać login z opcją numeru telefonu w formularzu logowania. Umieśćmy poniższy formularz logowania na twojej stronie logowania.

<?php $return = log_the_user_in(); if( is_wp_error( $return)) {     echo $return->get_error_message(); } ?> <form method="post">     <p><input type="text" name="user_login" placeholder="Username, email or mobile" required /></p>     <p><input type="password" name="user_password" placeholder="Password" required /></p>     <input type="hidden" name="login_nonce" value="<?php echo wp_create_nonce('login_nonce'); ?>" />     <input type="submit" name="login_the_user" value="Submit" /> </form>

W powyższym kodzie sprawdzamy błędy i je drukujemy. W kolejnych krokach napiszemy kod do obsługi błędów. Dodatkowo dodaliśmy jednorazową wartość w formularzu, co jest zalecanym sposobem przetwarzania formularzy w WordPressie.

Zaloguj się za pomocą numeru telefonu w WordPress

Gdy użytkownik wypełni dane uwierzytelniające i naciśnie przycisk przesyłania, pobierzemy dane uwierzytelniające i zweryfikujemy je w bazie danych. Jeśli dane logowania są poprawne, zalogujemy użytkownika i przekierujemy go na stronę główną. W przypadku błędnych poświadczeń, błędy są rejestrowane w WP_Errorklasie.

Napisz poniższy kod w functions.phppliku, który przetwarza formularz logowania.

<?php add_action( 'init', 'log_the_user_in' ); function log_the_user_in() {     if (isset( $_POST['login_the_user']) && wp_verify_nonce( $_REQUEST['login_nonce'], 'login_nonce')) {           if (! empty( $_POST['user_login']) &&! empty( $_POST['user_password'])) {               if (is_email( $_POST['user_login'])) {                 // check user by email                 $user = get_user_by( 'email', $_POST['user_login'] );             } elseif (is_numeric( $_POST['user_login'])) {                 // check user by phone number                 global $wpdb;                 $tbl_usermeta = $wpdb->prefix.'usermeta';                 $user_id = $wpdb->get_var( $wpdb->prepare( "SELECT user_id FROM $tbl_usermeta WHERE meta_key=%s AND meta_value=%s", 'user_phone', $_POST['user_login']) );                   $user = get_user_by( 'ID', $user_id );             } else {                 // check user by username                 $user = get_user_by( 'login', $_POST['user_login'] );             }               if (! $user) {                 return new WP_Error('wrong_credentials', 'Invalid credentials.');             }               // check the user's login with their password.             if (! wp_check_password( $_POST['user_password'], $user->user_pass, $user->ID)) {                 return new WP_Error('wrong_credentials', 'Invalid credentials.');             }               wp_clear_auth_cookie();             wp_set_current_user($user->ID);             wp_set_auth_cookie($user->ID);               wp_redirect(get_bloginfo('url'));             exit;         } else {             return new WP_Error('empty', 'Both fields are required.');         }     } }

Tutaj najpierw zweryfikowaliśmy jednorazowy numer, aby chronić nasz formularz przed niektórymi rodzajami nadużyć, złośliwego kodu i ataków CSRF. Następnie, na podstawie metody is_email()lub is_numeric(), sprawdza poprawny adres e-mail i numer telefonu. Jeśli wpisana wartość nie jest adresem e-mail lub telefonem, wybieramy nazwę użytkownika. Jeśli poświadczenia są spełnione, użytkownicy logują się do systemu i przekierowują na stronę główną. W Twoim przypadku możesz przekierować użytkowników na inną stronę zgodnie ze swoim przepływem.

Mam nadzieję, że rozumiesz, jak zintegrować logowanie z numerem telefonu w WordPressie. Podziel się swoimi przemyśleniami i sugestiami w sekcji komentarzy poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów