✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Увійдіть за номером телефону в WordPress

63

Можливо, ви розмістили інтерфейсну форму для входу на своєму веб-сайті WordPress. І ви хочете дозволити користувачам входити за допомогою свого номера телефону або за допомогою імені користувача / електронної пошти. По суті, ви дозволяєте користувачам вводити будь-який із записів із Ім’я користувача / Електронна пошта / Телефон та пароль.

Зверніть увагу, цей посібник не має на меті відображати логін за допомогою OTP. Натомість я збираюся додати ще один варіант номера телефону разом із ім’ям користувача та електронною поштою. Тож ваші користувачі можуть вибрати будь-який зручний для них варіант. Ви, напевно, бачили цей варіант на Amazon. Amazon дозволяє нам входити за допомогою електронної пошти або мобільного номера.

Я збираюся створити просту форму для входу. Під час надсилання форми ми напишемо код, який перевіряє облікові дані у фоновому режимі для всіх 3 варіантів (Ім’я користувача / Електронна пошта / Телефон) та пароль.

Для того, щоб додати номер телефону у форму для входу, слід вставити номер телефону користувача в таблицю ‘wp_usermeta’. Ви можете зробити це під час реєстрації користувача. За допомогою наведеного нижче коду можна додати номер телефону користувача.

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

Після того, як у базі даних у вас є мета_ключ ‘user_phone’ разом із його значенням, ви можете додати логін та параметр телефонного номера у формі входу. Давайте розмістимо таку форму входу на вашу сторінку входу.

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

У наведеному вище коді ми перевіряємо наявність помилок та друкуємо їх. На наступних кроках ми напишемо код для обробки помилок. Крім того, ми додали nonce у формі, яка є рекомендованим способом обробки форм у WordPress.

Увійдіть за номером телефону в WordPress

Коли користувач заповнює облікові дані та натискає кнопку "Надіслати", ми візьмемо їх і перевіримо в базі даних. Якщо облікові дані правильні, тоді ми ввійдемо в систему та перенаправимо його на домашню сторінку. У разі неправильних облікових даних помилки реєструються в WP_Errorкласі.

Тож напишіть код нижче у functions.phpфайл, який обробляє форму входу.

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

Тут ми вперше перевірили nonce, щоб захистити нашу форму від певних типів зловживання, зловмисного коду та атак CSRF. Далі, на основі is_email()або is_numeric()методу, він перевіряє наявність дійсних адрес електронної пошти та номера телефону. Якщо введене значення не є електронною поштою чи телефоном, тоді ми використовуємо ім’я користувача. Якщо облікові дані задоволені, користувачі входять у систему та переспрямовують на домашню сторінку. У вашому випадку ви можете перенаправити користувачів на іншу сторінку відповідно до вашого потоку.

Сподіваюся, ви розумієте, як інтегрувати логін із номером телефону в WordPress. Будь ласка, поділіться своїми думками та пропозиціями в розділі коментарів нижче.

Пов’язані статті

Джерело запису: artisansweb.net

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі