Custom Login Form in Wordpress :
<?php
/*
Plugin Name: Custom Login Form
Plugin URI:
Description: Simple Login form plugin that just work, customize easily in code and set redirection or condition according to need.
Version: 1.0.0
Author: Sunil Sharma
Author URI:
*/
function dlf_form() {
?>
<form method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
<div class="login-form">
<h5>Your Username or Email</h5>
<div class="form-group">
<input name="login_name" type="text" class="form-control login-field" value="" placeholder="Enter Username or Email" id="login-name" />
<label class="login-field-icon fui-user" for="login-name"></label>
</div>
<h5>Your Password</h5>
<div class="form-group">
<input name="login_password" type="password" class="form-control login-field" value="" placeholder="Password" id="login-pass" />
<label class="login-field-icon fui-lock" for="login-pass"></label>
</div>
<?php if(isset($_GET["value"]) && $_GET["value"] != "") { ?>
<input type="hidden" value="<?php echo $_GET["value"];?>" name="service_redirect">
<?php } ?>
<div class="form-group">
<input name="rememberme" type="checkbox" id="lwa_rememberme" value="forever" /> <label ><?php _e( 'Remember Me', 'funding' ) ?></label>
</div>
<input class="btn btn-primary btn-lg btn-block" type="submit" name="dlf_submit" value="SIGN IN TO BACKYOURCAUSE" />
</div>
</form>
<?php
}
function dlf_auth( $username, $password, $service_red ) {
global $user;
$creds = array();
$user = get_user_by('email',$username);
if(!empty($user->user_login)){
$username = $user->user_login;
}
$creds['user_login'] = $username;
$creds['user_password'] = $password;
$creds['service_redirect'] = $service_red;
$creds['user_status'] = 0;
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) ) {
echo $user->get_error_message();
}
if ( !is_wp_error($user) ) {
$user_id = $user->data->ID;
$user_query = "SELECT `user_status` FROM `wp_users` WHERE `ID` = '".$user_id."'";
$user_run = mysql_query($user_query);
$user_value = mysql_fetch_object($user_run);
$user_status = $user_value->user_status;
$user_role = $user->roles[0];
if($user_status == 1){
wp_logout();
$newURL = site_url()."/sign-in/?msg=Please Confirm your email id";
header('Location: '.$newURL);
} else {
if($creds['service_redirect'] != ""){
$newURL = $creds['service_redirect'];
header('Location: '.$newURL);
} else {
if($user_role == "administrator"){
$newURL = site_url()."/wp-admin";
header('Location: '.$newURL);
}
if($user_role == "business"){
$newURL = site_url()."/business-profile";
header('Location: '.$newURL);
}
if($user_role == "subscriber"){
$newURL = site_url()."/my-profile";
header('Location: '.$newURL);
}
}
}
}
}
function dlf_process() {
if (isset($_POST['dlf_submit'])) {
dlf_auth($_POST['login_name'], $_POST['login_password'], $_POST['service_redirect']);
}
dlf_form();
}
function dlf_shortcode() {
ob_start();
dlf_process();
return ob_get_clean();
}
add_shortcode('dm_login_form', 'dlf_shortcode');
//[dm_login_form] use this shortcode to show login form in front end
?>
No comments:
Post a Comment