Login Form | Shortcode: [cxc_login_form]
<?php
add_shortcode( 'cxc_login_form', 'cxc_login_form_callback' );
function cxc_login_form_callback() {
ob_start();
if ( !is_user_logged_in() ) {
global $errors_login;
if (!empty( $errors_login ) ) {
?>
<div class="alert alert-danger">
<?php echo $errors_login; ?>
</div>
<?php } ?>
<form method="post" class="wc-login-form">
<div class="login_form">
<div class="log_user">
<label for="user_name">Username</label>
<input name="log" type="text" id="user_name" value="<?php echo isset($_POST['log']) ? $_POST['log'] : ''; ?>">
</div>
<div class="log_pass">
<label for="user_password">Password</label>
<input name="pwd" id="user_password" type="password">
</div>
<?php
ob_start();
do_action( 'login_form' );
echo ob_get_clean();
?>
<?php wp_nonce_field( 'userLogin', 'formType' ); ?>
</div>
<button type="submit">LOG IN</button>
</form>
<?php
} else {
echo '<p class="error-logged">You are already logged in.</p>';
}
$login_form = ob_get_clean();
return $login_form;
}
add_action( 'wp', 'cxc_user_login_callback' );
function cxc_user_login_callback() {
if ( isset( $_POST['formType'] ) && wp_verify_nonce( $_POST['formType'], 'userLogin' ) ) {
global $errors_login;
$uName = $_POST['log'];
$uPassword = $_POST['pwd'];
if ($uName == '' && $uPassword != '') {
$errors_login = '<strong>Error! </strong> Username is required.';
} elseif ($uName != '' && $uPassword == '') {
$errors_login = '<strong>Error! </strong> Password is required.';
} elseif ($uName == '' && $uPassword == '') {
$errors_login = '<strong>Error! </strong> Username & Password are required.';
} elseif ($uName != '' && $uPassword != '') {
$creds = array();
$creds['user_login'] = $uName;
$creds['user_password'] = $uPassword;
$creds['remember'] = false;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) ) {
$errors_login = $user->get_error_message();
} else {
wp_set_current_user( $user->ID );
wp_set_auth_cookie( $user->ID );
do_action( 'wp_login', $user->user_login, $user );
wp_redirect( site_url() );
exit;
}
}
}
}
?>
Register Form | Shortcode: [cxc_register_form]
<?php
add_shortcode( 'cxc_register_form', 'cxc_register_form_callback' );
function cxc_register_form_callback() {
ob_start();
if ( !is_user_logged_in() ) {
global $registrationError, $registrationSuccess;
if ( !empty( $registrationError ) ) {
?>
<div class="alert alert-danger">
<?php echo $registrationError; ?>
</div>
<?php } ?>
<?php if ( !empty( $registrationSuccess ) ) { ?>
<br/>
<div class="alert alert-success">
<?php echo $registrationSuccess; ?>
</div>
<?php } ?>
<form method="post" class="wc-register-form">
<div class="register_form">
<div class="log_user">
<label for="user_name">User name</label>
<?php $user_name = isset($_POST['user_name']) ? $_POST['user_name'] : ''; ?>
<input type="text" name="user_name" id="user_name" value="<?php echo $user_name; ?>" />
</div>
<div class="log_user">
<label for="user_email">Email address</label>
<?php $user_email = isset($_POST['user_email']) ? $_POST['user_email'] : ''; ?>
<input type="email" name="user_email" id="user_email" value="<?php echo $user_email; ?>" />
</div>
<div class="log_pass">
<label for="user_password">Password</label>
<input type="password" name="user_password" id="user_password" />
</div>
<div class="log_pass">
<label for="user_cpassword">Password again</label>
<input type="password" name="user_cpassword" id="user_cpassword" />
</div>
<div class="log_pass">
<?php
ob_start();
do_action( 'register_form' );
echo ob_get_clean();
?>
</div>
<div class="log_user">
<?php wp_nonce_field( 'userRegister', 'formType' ); ?>
<button type="submit" class="register_user">Register</button>
</div>
</div>
</form>
<?php
} else {
echo '<p class="error-logged">You are already logged in.</p>';
}
$register_form = ob_get_clean();
return $register_form;
}
add_action( 'wp', 'cxc_user_register_callback' );
function cxc_user_register_callback() {
if ( isset( $_POST['formType'] ) && wp_verify_nonce( $_POST['formType'], 'userRegister') ) {
global $registrationError, $registrationSuccess;
$u_name = trim( $_POST['user_name'] );
$u_email = trim( $_POST['user_email'] );
$u_pwd = trim( $_POST['user_password'] );
$u_cpwd = trim( $_POST['user_cpassword'] );
if ( $u_name == '' ) {
$registrationError .= '<strong>Error! </strong> Enter User name.,';
}
if ( username_exists( $u_name ) ) {
$registrationError .= '<strong>Error! </strong> Username In Use!.,';
}
if ( $u_email == '' ) {
$registrationError .= '<strong>Error! </strong> Enter Email.,';
}
if ( $u_pwd == '' || $u_cpwd == '' ) {
$registrationError .= '<strong>Error! </strong> Enter Password.,';
}
if ( strlen( $u_pwd ) < 7) {
$registrationError .= '<strong>Error! </strong> Use minimum 7 character in password.,';
}
if ( $u_pwd != $u_cpwd ) {
$registrationError .= '<strong>Error! </strong> Password are not matching.,';
}
if ( $u_email != '' && !is_email( $u_email ) ) {
$registrationError .= '<strong>Error! </strong> Invalid e-mail address.,';
}
if ( email_exists( $u_email ) != false ) {
$registrationError .= '<strong>Error! </strong> This Email is already registered.,';
}
$registrationError = trim( $registrationError, ',' );
$registrationError = str_replace( ",", "<br/>", $registrationError );
if ( empty( $registrationError ) ) {
$user_login = $u_name;
$user_email = $u_email;
$userdata = array(
'user_login' => $user_login,
'user_pass' => $u_pwd,
'user_email' => $user_email
);
$user_id = wp_insert_user( $userdata );
if ( is_wp_error( $user ) ) {
$registrationError = $user->get_error_message();
} else {
$registrationSuccess = '<strong>Success! </strong> Application submitted. Please wait for user approval.';
$user = get_userdata( $user_id );
wp_set_current_user( $user->ID );
wp_set_auth_cookie( $user->ID );
do_action( 'wp_login', $user->user_login, $user );
wp_redirect( site_url() );
exit;
}
}
}
}
?>
Change Password Form | Shortcode: [cxc_change_pwd_form]
<?php
add_shortcode( 'cxc_change_pwd_form', 'cxc_change_pwd_form_callback' );
function cxc_change_pwd_form_callback() {
ob_start();
if ( is_user_logged_in() ) {
global $changePasswordError, $changePasswordSuccess;
if ( !empty( $changePasswordError ) ) {
?>
<div class="alert alert-danger">
<?php echo $changePasswordError; ?>
</div>
<?php } ?>
<?php if ( !empty( $changePasswordSuccess ) ) { ?>
<br/>
<div class="alert alert-success">
<?php echo $changePasswordSuccess; ?>
</div>
<?php } ?>
<form method="post" class="wc-change-pwd-form">
<div class="change_pwd_form">
<div class="log_pass">
<label for="user_oldpassword">Old Password</label>
<input type="password" name="user_opassword" id="user_oldpassword" />
</div>
<div class="log_pass">
<label for="user_password">New Password</label>
<input type="password" name="user_password" id="user_password" />
</div>
<div class="log_pass">
<label for="user_cpassword">Confirm Password</label>
<input type="password" name="user_cpassword" id="user_cpassword" />
</div>
<div class="log_pass">
<?php
ob_start();
do_action( 'password_reset' );
echo ob_get_clean();
?>
</div>
<div class="log_user">
<?php wp_nonce_field( 'changePassword', 'formType' ); ?>
<button type="submit" class="register_user">Submit</button>
</div>
</div>
</form>
<?php
}
$change_pwd_form = ob_get_clean();
return $change_pwd_form;
}
add_action( 'wp', 'cxc_user_change_pwd_callback' );
function cxc_user_change_pwd_callback() {
if ( isset( $_POST['formType'] ) && wp_verify_nonce( $_POST['formType'], 'changePassword' ) ) {
global $changePasswordError, $changePasswordSuccess;
$user = wp_get_current_user();
$changePasswordError = '';
$changePasswordSuccess = '';
$u_opwd = trim( $_POST['user_opassword'] );
$u_pwd = trim( $_POST['user_password'] );
$u_cpwd = trim( $_POST['user_cpassword'] );
if ( $u_opwd == '' || $u_pwd == '' || $u_cpwd == '' ) {
$changePasswordError .= '<strong>ERROR: </strong> Enter Password.,';
}
if ( !wp_check_password( $u_opwd, $user->data->user_pass, $user->ID ) ) {
$changePasswordError .= '<strong>ERROR: </strong> Old Password wrong.,';
}
if ( $u_pwd != $u_cpwd ) {
$changePasswordError .= '<strong>ERROR: </strong> Password are not matching.,';
}
if ( strlen( $u_pwd ) < 7 ) {
$changePasswordError .= '<strong>ERROR: </strong> Use minimum 7 character in password.,';
}
$changePasswordError = trim( $changePasswordError, ',' );
$changePasswordError = str_replace( ",", "<br/>", $changePasswordError );
if ( empty( $changePasswordError ) ) {
wp_set_password( $u_pwd, $user->ID );
do_action( 'wp_login', $user->user_login, $user );
wp_set_current_user( $user->ID );
wp_set_auth_cookie( $user->ID );
$changePasswordSuccess = 'Password is successfully updated.';
}
}
}
?>
Forgot Password Form | Shortcode: [cxc_forgot_pwd_form]
<?php
add_shortcode( 'cxc_forgot_pwd_form', 'cxc_forgot_pwd_form_callback' );
function cxc_forgot_pwd_form_callback() {
ob_start();
if ( !is_user_logged_in() ) {
global $getPasswordError, $getPasswordSuccess;
if ( !empty( $getPasswordError ) ) {
?>
<div class="alert alert-danger">
<?php echo $getPasswordError; ?>
</div>
<?php } ?>
<?php if ( !empty( $getPasswordSuccess ) ) { ?>
<br/>
<div class="alert alert-success">
<?php echo $getPasswordSuccess; ?>
</div>
<?php } ?>
<form method="post" class="wc-forgot-pwd-form">
<div class="forgot_pwd_form">
<div class="log_user">
<label for="user_login">Username or E-mail:</label>
<?php $user_login = isset($_POST['user_login']) ? $_POST['user_login'] : ''; ?>
<input type="text" name="user_login" id="user_login" value="<?php echo $user_login; ?>" />
</div>
<div class="log_user">
<?php
ob_start();
do_action( 'lostpassword_form' );
echo ob_get_clean();
?>
<?php wp_nonce_field('userGetPassword', 'formType'); ?>
<button type="submit" class="get_new_password">Get New Password</button>
</div>
</div>
</form>
<?php
}
$forgot_pwd_form = ob_get_clean();
return $forgot_pwd_form;
}
add_action('wp', 'cxc_user_forgot_pwd_callback');
function cxc_user_forgot_pwd_callback() {
if ( isset( $_POST['formType'] ) && wp_verify_nonce( $_POST['formType'], 'userGetPassword' ) ) {
global $getPasswordError, $getPasswordSuccess;
$email = trim( $_POST['user_login'] );
if ( empty( $email ) ) {
$getPasswordError = '<strong>Error! </strong>Enter a e-mail address.';
} else if ( !is_email( $email ) ) {
$getPasswordError = '<strong>Error! </strong>Invalid e-mail address.';
} else if ( !email_exists( $email ) ) {
$getPasswordError = '<strong>Error! </strong>There is no user registered with that email address.';
} else {
// lets generate our new password
$random_password = wp_generate_password( 12, false );
// Get user data by field and data, other field are ID, slug, slug and login
$user = get_user_by( 'email', $email );
$update_user = wp_update_user( array(
'ID' => $user->ID,
'user_pass' => $random_password
) );
// if update user return true then lets send user an email containing the new password
if ( $update_user ) {
$to = $email;
$subject = 'Your new password';
$sender = get_bloginfo( 'name' );
$message = 'Your new password is: ' . $random_password;
/* $headers[] = 'MIME-Version: 1.0' . "\r\n";
$headers[] = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers[] = "X-Mailer: PHP \r\n";
$headers[] = 'From: ' . $sender . ' < ' . $email . '>' . "\r\n"; */
$headers = array( 'Content-Type: text/html; charset=UTF-8' );
$mail = wp_mail( $to, $subject, $message, $headers );
if ( $mail ) {
$getPasswordSuccess = '<strong>Success! </strong>Check your email address for you new password.';
}
} else {
$getPasswordError = '<strong>Error! </strong>Oops something went wrong.';
}
}
}
}
?>