make a login page wordpress code example

Example 1: wordpress set custom login page

<?php
   
   /* Template Name: login-new */ 
   do_action('user_redirect_if_logged_in');

   // get_header();
   $login = home_url()."/login-new/";
   $dashboard = home_url()."/dashboard/";
   
   if(isset($_REQUEST['signin'])){
      $email = $_POST['email'];
      $password = $_POST['password'];
      $creds = array();
      $creds['user_login'] = $_POST['email'];
      $creds['user_password'] = $_POST['password'];
      $creds['remember'] = false;
      $user = wp_signon( $creds, false );
      //if ( is_wp_error($user) )
      //{
      //   header("location:$login");
      //}
      //else
      //{
      //   header("location:$dashboard");
      //} 

      $user = wp_signon( $creds);

      if(isset($user->errors)){
      // if(is_wp_error($user)) {
         echo $user->get_error_message();
         die;
      }else{ //successfully logged in
            session_start();  //check for wp_session storage 
            $_SESSION["new_dashboard"] = '1';  //if you want to redirect user to a new page or set any conditions on login
         
                if ($user->is_admin == '1') {
                  $dashboard = home_url()."/?page=old-dashboard";
                } else {
                  $dashboard = home_url()."/?page=new-dashboard";
                }
        
        //set cookie for remember me //save user login details as cookie if remember me is set, so that if user logs out next time and comes to this log in page, username & password auto fills by checking
        $user_login_details = $email.'_pass_'.$password;
        if(!empty($_POST["remember"])) {
          setcookie ("user_login_details",$user_login_details,time()+ (10 * 365 * 24 * 60 * 60)); //set cookie time as per you need
        } else {  //remove login details from cookie
          if(isset($_COOKIE["user_login_details"])) {
            setcookie ("user_login_details","");
          }
        }
         wp_redirect($dashboard);
         exit;
      }
   }
   
   if(isset($_COOKIE["user_login_details"])) {
          $login_details = $_COOKIE["user_login_details"];
          $login_details = explode('_pass_', $login_details);
          $email_set = $login_details[0];
          $pass_set = $login_details[1];
   }

   ?>

<!DOCTYPE html>
<html lang="en">

<head>
<?php 
   global $wpdb;
   $db_name = $wpdb->dbname;
?>

   <title>Sign In</title>

</head>

<title>New Login</title>

<div class="container-fluid">
   <div class="row">
      <div class="col-md-4 card-body">
     
         <div class="card">
            <div class="card-body">
             
               <h3 class="h3">Login</h3>

               <form method="POST" action="">                  
                  <div class="form-group">
                     <label>Email address</label>
                     <div class="input-group">
                        <input id="email" type="email" class="form-control" name="email" value="<?php if(isset($email_set)){ echo $email_set; } ?>" required />
                     </div>
                  </div>
                  <div class="form-group">
                  
                           <label class="form-control-label">Password</label>
                    
                           <a href="<?php echo site_url(); ?>/password-reset/" class="small text-muted text-underline--dashed border-primary">Lost password?</a>
                  
                     <div class="input-group input-group-merge">
             
                        <input id="password" type="password" value="<?php if(isset($pass_set)){ echo $pass_set; } ?>" class="form-control" name="password" required />
                        
                           <a href="#/" onClick="show_pass()" class="primary_color">
                           <i  class="fas fa-eye"></i>
                           </a>
                     </div>
                   
                           <input type="checkbox" name="remember" class="custom-control-input" id="remember" >
                           <label class="custom-control-label" for="remember">Remember Me</label>
                      
                        <button type="submit" id="signin" name="signin">
                        
                        </button>
                
                  </div>
               </form>
               
            </div>
         </div>
      </div>
   </div>
</div>
<script>
function show_pass() {
  var x = document.getElementById("password");
  if (x.type === "password") {
    x.type = "text";
  } else {
    x.type = "password";
  }
}
</script>

<?php get_footer();?>

Example 2: wordpress login user programmatically

<?php

function auto_login( $user ) {
    $username   = $user;
    // log in automatically
    if ( !is_user_logged_in() ) {
        $user = get_userdatabylogin( $username );
        $user_id = $user->ID;
        wp_set_current_user( $user_id, $user_login );
        wp_set_auth_cookie( $user_id );
        do_action( 'wp_login', $user_login );
    }     
}
?>

Tags:

Php Example