...
✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Accedi con il numero di telefono in WordPress

138

Potresti aver inserito un modulo di accesso front-end sul tuo sito Web WordPress. E vuoi consentire agli utenti di accedere con il loro numero di telefono o utilizzando nome utente/e-mail. Fondamentalmente, stai consentendo agli utenti di inserire una qualsiasi delle voci tra Nome utente/Email/Telefono e una password.

Tieni presente che questo tutorial non intende mostrare l’accesso con OTP. Invece, aggiungerò un’altra opzione di numero di telefono insieme a nome utente ed e-mail. Quindi i tuoi utenti possono scegliere qualsiasi opzione che sia conveniente per loro. Probabilmente hai visto questa opzione su Amazon. Amazon ci consente di accedere con e-mail o numero di cellulare.

Creerò un semplice modulo di accesso. Sul modulo di invio, scriveremo un codice che controlla le credenziali in background per tutte e 3 le opzioni (Nome utente/Email/Telefono) e una password.

Per aggiungere un numero di telefono in un modulo di accesso, è necessario inserire un numero di telefono di un utente nella tabella ‘wp_usermeta’. Puoi farlo al momento della registrazione dell’utente. Il codice seguente può essere utilizzato per aggiungere un numero di telefono di un utente.

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

Una volta che hai meta_key ‘user_phone’ insieme al suo valore nel database, puoi aggiungere l’accesso con l’opzione del numero di telefono in un modulo di accesso. Mettiamo il seguente form di login nella tua pagina di login.

<?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>

Nel codice sopra, stiamo controllando gli errori e stampandoli. Scriveremo il codice per la gestione degli errori nei passaggi successivi. Inoltre, abbiamo aggiunto un nonce nel modulo che è il modo consigliato di elaborare i moduli in WordPress.

Accedi con il numero di telefono in WordPress

Quando un utente inserisce le credenziali e preme un pulsante di invio, prenderemo le credenziali e le verificheremo sul database. Se le credenziali sono corrette, effettueremo il login dell’utente e lo reindirizzeremo alla home page. In caso di credenziali errate, gli errori vengono registrati con la WP_Errorclasse.

Quindi scrivi il codice qui sotto nel functions.phpfile che elabora il form di login.

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

Qui, abbiamo prima verificato il nonce per proteggere il nostro modulo da alcuni tipi di uso improprio, codice dannoso e attacchi CSRF. Successivamente, in base a is_email()o is_numeric()metodo, verifica la presenza di e-mail e numero di telefono validi. Se il valore inserito non è un’e-mail o un telefono, scegliamo nome utente. Se le credenziali sono soddisfatte, gli utenti accedono al sistema e reindirizzano alla home page. Nel tuo caso, puoi reindirizzare gli utenti a un’altra pagina secondo il tuo flusso.

Spero che tu capisca come integrare l’accesso con un numero di telefono in WordPress. Per favore condividi i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.

articoli Correlati

Fonte di registrazione: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More