✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Logige sisse WordPressi telefoninumbriga

19

Võimalik, et olete oma WordPressi veebisaidile lisanud kasutajaliidese sisselogimisvormi. Ja soovite lubada kasutajatel sisse logida oma telefoninumbri või kasutajanime / e-posti aadressi abil. Põhimõtteliselt lubate kasutajatel sisestada ükskõik millise ühe kirje välja Kasutajanimi / E-post / Telefon ja parool.

Pange tähele, see õpetus ei kavatse näidata OTP-ga sisselogimist. Selle asemel lisan veel ühe telefoninumbri valiku koos kasutajanime ja e-posti aadressiga. Nii et teie kasutajad saavad valida ühe neile sobiva võimaluse. Ilmselt nägite seda võimalust Amazonis. Amazon lubab meil sisse logida kas e-posti või mobiilinumbriga.

Kavatsen luua lihtsa sisselogimisvormi. Esitatavale vormile kirjutame koodi, mis kontrollib kõigi kolme valiku (kasutajanimi / e-post / telefon) taustal mandaate ja parooli.

Telefoninumbri lisamiseks sisselogimisvormile peaksite tabelisse wp_usermeta sisestama kasutaja telefoninumbri. Saate seda teha kasutaja registreerimise ajal. Allolevat koodi saab kasutada kasutaja telefoninumbri lisamiseks.

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

Kui olete meta_key "kasutaja_telefon" koos selle väärtusega andmebaasis, saate sisselogimisvormil lisada sisselogimise telefoninumbrivalikuga. Paneme teie sisselogimislehele järgmise sisselogimisvormi.

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

Ülaltoodud koodis kontrollime vigu ja printime need välja. Järgmistes sammudes kirjutame vigade käsitlemise koodi. Lisaks lisasime vormi nonce, mis on soovitatav viis vormide töötlemiseks WordPressis.

Logige sisse WordPressi telefoninumbriga

Kui kasutaja täidab mandaadi ja vajutab nuppu Esita, võtame mandaadi ja kontrollime neid andmebaasiga võrreldes. Kui mandaadid on õiged, logime kasutaja sisse ja suuname selle avalehele. Vale mandaadi korral logitakse vead koos WP_Errorklassiga.

Nii kirjutage allolev kood functions.phpfaili, mis töötleb sisselogimisvormi.

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

Siin kontrollisime kõigepealt nonce’i, et kaitsta oma vormi teatud tüüpi väärkasutuse, pahatahtliku koodi ja CSRF-i rünnakute eest. Järgmisena kontrollib see vastavalt meetodile is_email()või is_numeric()kehtivat e-posti aadressi ja telefoninumbrit. Kui sisestatud väärtus pole e-posti aadress või telefon, otsime kasutajanime. Kui mandaadid on täidetud, logivad kasutajad süsteemi sisse ja suunavad uuesti avalehele. Teie puhul saate oma voo järgi suunata kasutajad teisele lehele.

Loodetavasti saate aru, kuidas integreerida sisselogimine telefoninumbriga WordPressis. Palun jagage oma mõtteid ja ettepanekuid allpool olevas kommentaaride jaotises.

seotud artiklid

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem