Skip to main content

How to create forget password with otp in wordpress without plugin?

Create forget password with otp in wordpress without plugin.


 Main-Page


<?php

 /* Template Name: forget-password  */

 ob_start();

get_header();

?>


<div id="primary" class="content-area">

                <main id="main" class="site-main" role="main">

                                <?php

                                // Start the loop.

                                while ( have_posts() ) : the_post();

                                                // Include the page content template.

                                                get_template_part( 'template-parts/content', 'page' );

                                                // If comments are open or we have at least one comment, load up the comment template.

                                                if ( comments_open() || get_comments_number() ) {

                                                                comments_template();

                                                }

                                                // End of the loop.

                                endwhile;

                                ?>

                </main><!-- .site-main -->

           

</div><!-- .content-area -->

 




<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css">


<style>


.red_error{

color:REd;

}

</style>


<input type="hidden" name="user_id" class="user_id" val=''>

<form name="lostpasswordform" id="lostpasswordform" class="lostpasswordform" method="post">

<input type="email" name="email" class="email" placeholder="Email">

<div class="email_error red_error"></div>

<input type="tel" name="phone" class="phone" placeholder="Phone">

<div class="phone_error red_error"></div>

<input type="submit" name="forget_pass" class="forget_pass" value="Continue">


</form>


<?php


//echo get_option('admin_email');

?>


<script>

jQuery(document).ready(function($){

 

jQuery('.forget_pass').click(function(e) {

event.preventDefault()

var email = $('.email').val();

var phone = $('.phone').val();

if(email==''){

$('.email_error').html('Email field is required');

     return false;

    

     }

else{

$('.email_error').html(''); 

}

     if(phone==''){


$('.phone_error').html('Phone field is required');

     return false;

    

     }

else{

$('.phone_error').html('');

}

 

//alert(email+phone);

//var ajax = "http://wpcodekit.com/wp-admin/admin-ajax.php";

var ajax =  "<?php echo admin_url('admin-ajax.php'); ?>";


    var data = {

    'action' : "forget_password",

    'email': email,

    'phone' : phone

    }



     $.post(ajax,data,function(response){

    // console.log(response);

    // location.reload(true);

var result = $.parseJSON(response);


if(result[0] != ''){

$('.email_error').html(result[0]);

}

else{

$('.email_error').html('');

}

if(result[1] !=''){

$('.phone_error').html(result[1]);

}

else{

$('.phone_error').html('');

}

if(result[2]==1){

$('.lostpasswordform').html('<input type="text" name="opt" class="opt" placeholder="Enter Otp"><div class="otp_error red_error"></div><input type="submit" name="otp_bt" class="otp_bt" value="Continue">');

$('.user_id').val(result[3]);

}

else{

//$('.email_error').html('');

//$('.phone_error').html('');

}

//console.log(result[2]);

     });

});




jQuery(document).on('click','.otp_bt',function(e) {

e.preventDefault();

var otp = $('.opt').val();


if(otp==''){


$('.otp_error').html('OTP is required');

     return false;

    

     }

else{

$('.otp_error').html('');

}


 

//var ajax = "http://wpcodekit.com/wp-admin/admin-ajax.php";

var ajax =  "<?php echo admin_url('admin-ajax.php'); ?>";

    var data = {

    'action' : "check_otp",

    'otp': otp

    }


    $.post(ajax,data,function(response){

    //console.log(response);

    // location.reload(true);

  var result = $.parseJSON(response);

if(result[0] == 1){

$('.lostpasswordform').html('<input type="password" name="password" class="password" placeholder="New Password"><div class="password_error red_error"></div><input type="password" name="confirm_pass" class="confirm_pass" placeholder="Confirm New Password"><div class="confirm_error red_error"></div><input type="submit" name="sub_pass" class="sub_pass" value="Continue">');

$('.otp_error').html('');

}

else{

$('.otp_error').html(result[0]);

}


     });

});





jQuery(document).on('click','.sub_pass',function(e) {

e.preventDefault();

var password = $('.password').val();

var confirm_pass = $('.confirm_pass').val();

var user_id = $('.user_id').val();


if(password==''){

$('.password_error').html('Password is required');

     return false;

    

     }

else{

$('.password_error').html('');

}

 

if(confirm_pass==''){

$('.confirm_error').html('Confirm Password is required');

     return false;

    

     }

else{

$('.confirm_error').html(''); 

}


if(password!=confirm_pass){

$('.confirm_error').html('confirm password does not match');

return false;

     }

else{

$('.confirm_error').html('');

}


var ajax =  "<?php echo admin_url('admin-ajax.php'); ?>";


    var data = {

    'action' : "set_password",

    'password': password,

    'confirm_pass': confirm_pass,

    'user_id': user_id

    }


    $.post(ajax,data,function(response){

    //console.log(response);

    // location.reload(true);

  var result = $.parseJSON(response);

if(result[0] == 1){

$('.otp_error').html('');

swal("Success", "Well done, your password has been updated", "success")

}

else{


$('.confirm_error').html(result[0]);

}


     });

});

});


</script>


<?php 


get_footer(); 


?>



Paste in function.php



function send_mail($email,$message){


//php mailer variables

  $to = $email;

  $from = get_option('admin_email');

  $subject = "Otp";

  $headers = 'From: '. $from . "\r\n" .

    'Reply-To: ' . $from . "\r\n";

 


//Here put your Validation and send mail

$sent = wp_mail($to, $subject, strip_tags($message), $headers);


      if($sent) {

//echo 'email has been sent.';

      }//message sent!

      else  {

//echo 'Error';

      }//message wasn't sent

  

}



 function forget_password(){

 

ob_start();

$user_id;

$success_status = 0; 

if(function_exists('date_default_timezone_set')) {

date_default_timezone_set("Asia/Kolkata");

}

$date = date("d/m/Y");

$date1 =  date("H:i a");

$phone = $_POST['phone'];

$email = $_POST['email'];

global $wpdb;


if(!email_exists($email)){

$error_email = 'Email does not match, please recheck and try again';

$email_status = 0;

}

else{

$email_status = 1;

$error_email = '';

}


if($email_status == 0){

$error_phone = '';

$success_status = 0;

}

else{


$user = get_user_by('email',$email);

$user_id = $user->ID;


$havemobile = get_user_meta($user_id,'phone_no',$phone); // stores the value of logged in user's meta data for 'test'.


if ($havemobile==$phone){

   $error_phone = '';

else {

     $error_phone = 'Mobile does not match, please recheck and try again';

//die();

}


if(email_exists($email) && $havemobile==$phone){

$random_result = rand(10000,99999);

setcookie("forget_password_coo", $random_result, time() + (60 * 5)); //5min

send_mail($email,$random_result.' Valid OTP for 5-Min');

//echo $_COOKIE['forget_password_coo'].'jassi';

$success_status = 1; 

}

}

echo json_encode(array($error_email,$error_phone,$success_status,$user_id));

die();

//ob_end_clean();

 }


 add_action('wp_ajax_nopriv_forget_password','forget_password');

 add_action('wp_ajax_forget_password','forget_password');





 function check_otp(){

 

ob_start(); 

$otp = $_POST['otp'];

global $wpdb;

if($_COOKIE['forget_password_coo']==$otp){

//$otp_status = 'true';

$otp_status = 1;

}

else{

$otp_status = 'Please enter valid OTP';

}

echo json_encode(array($otp_status));

die();

//ob_end_clean();

 }


 add_action('wp_ajax_nopriv_check_otp','check_otp');

 add_action('wp_ajax_check_otp','check_otp');

 

 

 

 function set_password(){

 

ob_start(); 

$password = $_POST['password'];

$confirm_pass = $_POST['confirm_pass'];

$user_id = $_POST['user_id'];

global $wpdb;

if(!empty($user_id) && !empty($password)){

wp_set_password( $password, $user_id );

$password_status = 1;

}

else{

$password_status = 'error';

}


echo json_encode(array($password_status));

die();


 }


 add_action('wp_ajax_nopriv_set_password','set_password');

 add_action('wp_ajax_set_password','set_password');



Comments

Popular posts from this blog

How to use inner html value or data in php from javascript(innerHTML)?

 use inner html value or data in php from javascript(innerHTML)? <html> <body> <p id="demo">use inner html value in php(innerhtml)</p> <script>   var jassi = document.getElementById("demo").innerHTML;   //document.write(jassi); </script> <?php $jassi = '<script>document.write(jassi);</script>'; echo $jassi; ?> </body> </html>

How to get store data from WCFM(Best Multi Vendor Marketplace) Plugin?

 Get store data from WCFM(Best Multi Vendor Marketplace) Plugin. global $WCFM, $WCFMmp, $wp, $WCFM_Query, $post; $store_id = ''; if ( isset( $attr['id'] ) && !empty( $attr['id'] ) ) { $store_id = absint($attr['id']); } if (  wcfm_is_store_page() ) { $wcfm_store_url = get_option( 'wcfm_store_url', 'store' ); $store_name = apply_filters( 'wcfmmp_store_query_var', get_query_var( $wcfm_store_url ) ); $store_id  = 0; if ( !empty( $store_name ) ) { $store_user = get_user_by( 'slug', $store_name ); } $store_id    = $store_user->ID; } $user_id = $store_id;  $vendor_data = get_user_meta( $user_id, 'wcfmmp_profile_settings', true ); $street_1 = $vendor_data['address']['street_1']; $street_2 = $vendor_data['address']['street_2']; $city     = $vendor_data['address']['city']; $zip      = $vendor_data['address']['zip&#

How to create login with phone number in woocommerce wordpress?

Create login with phone number in woocommerce wordpress. function wooc_extra_register_fields() {?>        <p class="form-row form-row-wide">        <label for="reg_billing_phone"><?php _e( 'Phone', 'woocommerce' ); ?><span class="required">*</span></label>        <input type="text" class="input-text" name="billing_phone" id="reg_billing_phone" value="<?php esc_attr_e( $_POST['billing_phone'] ); ?>" />        </p>            <?php  }  add_action( 'woocommerce_register_form_start', 'wooc_extra_register_fields' );  function wooc_validate_extra_register_fields( $username, $email, $validation_errors ) { if ( isset( $_POST['billing_phone'] ) ) {    $hasPhoneNumber= get_users('meta_value='.$_POST['billing_phone']);    if ( !empty($hasPhoneNumber)) {      $validation_er