✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Kirjaudu sisään puhelinnumerolla WordPressissä

23

Olet saattanut sijoittaa etupään kirjautumislomakkeen WordPress-verkkosivustoosi. Ja haluat antaa käyttäjien kirjautua sisään puhelinnumerollaan tai käyttäjänimellä / sähköpostilla. Pohjimmiltaan annat käyttäjien antaa minkä tahansa yhden merkinnän Käyttäjätunnus / Sähköposti / Puhelin ja salasana.

Huomaa, että tämä opetusohjelma ei aio näyttää kirjautumista OTP: llä. Sen sijaan aion lisätä vielä yhden vaihtoehdon puhelinnumerosta käyttäjänimen ja sähköpostin kanssa. Joten käyttäjät voivat valita minkä tahansa heille sopivan vaihtoehdon. Olet todennäköisesti nähnyt tämän vaihtoehdon Amazonissa. Amazon antaa meille mahdollisuuden kirjautua sisään joko sähköposti- tai matkapuhelinnumerolla.

Aion luoda yksinkertaisen kirjautumislomakkeen. Lähetettävään lomakkeeseen kirjoitetaan koodi, joka tarkistaa kaikkien kolmen vaihtoehdon (käyttäjätunnus / sähköpostiosoite / puhelin) tunnistetiedot taustalla ja salasanan.

Jos haluat lisätä puhelinnumeron kirjautumislomakkeeseen, sinun on lisättävä käyttäjän puhelinnumero wp_usermeta-taulukkoon. Voit tehdä sen käyttäjän rekisteröinnin yhteydessä. Alla olevaa koodia voidaan käyttää käyttäjän puhelinnumeron lisäämiseen.

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

Kun sinulla on meta-avain ‘user_phone’ yhdessä sen arvon kanssa tietokannassa, voit lisätä sisäänkirjautumisen puhelinnumerovaihtoehdolla kirjautumislomakkeessa. Lisätään seuraava kirjautumislomake kirjautumissivullesi.

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

Yllä olevassa koodissa tarkistamme virheet ja tulostamme ne. Kirjoitamme koodin virheiden käsittelemiseksi seuraavissa vaiheissa. Lisäksi lisättiin nonce muodossa, joka on suositeltu tapa käsitellä lomakkeita WordPressissä.

Kirjaudu sisään puhelinnumerolla WordPressissä

Kun käyttäjä täyttää tunnistetiedot ja osuu lähetyspainikkeeseen, otamme tunnistetiedot ja tarkistamme ne tietokantaan. Jos kirjautumistiedot ovat oikein, kirjaamme käyttäjän sisään ja ohjaamme sen kotisivulle. Jos virheelliset tunnistetiedot, virheet kirjataan WP_Errorluokan kanssa.

Joten kirjoita alla oleva koodi functions.phptiedostoon, joka käsittelee kirjautumislomaketta.

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

Täällä vahvistimme ensin ei-suojautumisen lomakkeellemme tietyntyyppisiltä väärinkäytöksiltä, ​​haitallisilta koodeilta ja CSRF-hyökkäyksiltä. Seuraavaksi se tarkistaa menetelmän is_email()tai is_numeric()menetelmän perusteella, onko sähköpostiosoite ja puhelinnumero voimassa. Jos syötetty arvo ei ole sähköposti tai puhelin, käytämme käyttäjänimeä. Jos käyttäjätiedot täyttyvät, käyttäjät kirjautuvat järjestelmään ja ohjaavat kotisivulle. Sinun tapauksessasi voit ohjata käyttäjät toiselle sivulle vuosi mukaan.

Toivon, että ymmärrät kuinka integroida sisäänkirjautuminen puhelinnumeroon WordPressissä. Jaa ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.

Aiheeseen liittyvät artikkelit

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja