✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Login com número de telefone no WordPress

185

Você pode ter colocado um formulário de login de front-end em seu site WordPress. E você deseja permitir que os usuários façam login com seu número de telefone ou usando nome de usuário / e-mail. Basicamente, você está permitindo que os usuários insiram qualquer uma das entradas de Nome de usuário / E-mail / Telefone e uma senha.

Observe que este tutorial não pretende mostrar login com OTP. Em vez disso, vou adicionar mais uma opção de número de telefone junto com nome de usuário e e-mail. Assim, seus usuários podem escolher qualquer opção que seja conveniente para eles. Você provavelmente viu essa opção na Amazon. A Amazon nos permite fazer login com e-mail ou número de celular.

Vou criar um formulário de login simples. No envio do formulário, escreveremos um código que verifica as credenciais em segundo plano para todas as 3 opções (nome de usuário / e-mail / telefone) e uma senha.

Para adicionar um número de telefone em um formulário de login, você deve inserir um número de telefone de um usuário na tabela ‘wp_usermeta’. Você pode fazer isso no momento do registro do usuário. O código abaixo pode ser usado para adicionar o número de telefone de um usuário.

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

Depois de ter meta_key ‘user_phone’ junto com seu valor no banco de dados, você pode adicionar login com a opção de número de telefone em um formulário de login. Vamos colocar o seguinte formulário de login em sua página de 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>

No código acima, estamos verificando os erros e imprimindo-os. Escreveremos código para lidar com erros nas próximas etapas. Além disso, adicionamos um nonce no formulário, que é a forma recomendada de processamento de formulários no WordPress.

Login com número de telefone no WordPress

Quando um usuário preenche as credenciais e clica em um botão de envio, pegaremos as credenciais e as verificaremos no banco de dados. Se as credenciais estiverem corretas, faremos o login do usuário e o redirecionaremos para a página inicial. Em caso de credenciais erradas, os erros são registrados com a WP_Errorclasse.

Então escreva o código abaixo no functions.phparquivo que processa o formulário de 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.');
        }
    }
}

Aqui, primeiro verificamos o nonce para proteger nosso formulário de certos tipos de uso indevido, código malicioso e ataques CSRF. Em seguida, com base no método is_email()ou is_numeric(), ele verifica o e-mail e o número de telefone válidos. Se o valor inserido não for um e-mail ou telefone, vamos para o nome de usuário. Se as credenciais forem satisfeitas, os usuários efetuam login no sistema e redirecionam para a página inicial. No seu caso, você pode redirecionar os usuários para outra página de acordo com o seu fluxo.

Espero que você entenda como integrar o login a um número de telefone no WordPress. Por favor, compartilhe seus pensamentos e sugestões na seção de comentários abaixo.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação