...
✅ 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

27

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