File: /home/dh_5jabqq/bermudashipwreckarchive.com/wp-content/themes/loquet/includes/user-box.php
<?php
/*======
*
* User Box
*
======*/
if( !function_exists( 'loquet_user_box' ) ) {
function loquet_user_box( $sign_in = "true", $sign_up = "true" ) {
/*====== Customizer Settings ======*/
$reset_password = get_theme_mod( 'loquet_header_user_box_password_reset', '1' );
$reset_password_page = get_theme_mod( 'loquet_header_user_box_password_reset_page' );
$social_login = get_theme_mod( 'loquet_header_user_box_social_login' );
$social_login_shortcode = get_theme_mod( 'loquet_header_user_box_social_login_shortcode' );
/*====== HTML Output ======*/
$output = "";
if( $sign_in == "true" or $sign_up == "true" ) {
if( !is_user_logged_in() ) {
if( $sign_in == "true" ) {
$output .= '<form id="gt-sign-in-form" action="' . esc_url( home_url( '/' ) ) . '" method="POST">';
$output .= '<div class="gt-grid gt-grid-1 gt-spacing-10">';
$output .= '<div class="gt-grid-col">';
$output .= '<input type="text" name="gt-sign-in-username" id="gt-sign-in-username" placeholder="' . esc_html__( 'Username or Email Address', 'loquet' ) . '" required />';
$output .= '</div>';
$output .= '<div class="gt-grid-col">';
$output .= '<input type="password" name="gt-sign-in-password" id="gt-sign-in-password" placeholder="' . esc_html__( 'Password', 'loquet' ) . '" required />';
$output .= '</div>';
$output .= '<div class="gt-grid-col">';
$output .= '<label class="gt-checkbox" for="gt-remember-me">';
$output .= '<input type="checkbox" value="none" name="gt-remember-me" id="gt-remember-me" />';
$output .= '<svg viewBox="0 0 21 21"> <path d="M5,10.75 L8.5,14.25 L19.4,2.3 C18.8333333,1.43333333 18.0333333,1 17,1 L4,1 C2.35,1 1,2.35 1,4 L1,17 C1,18.65 2.35,20 4,20 L17,20 C18.65,20 20,18.65 20,17 L20,7.99769186"></path></svg>';
$output .= '<span>' . esc_html__( 'Remember Me', 'loquet' ) . '</span>';
$output .= '</label>';
$output .= '</div>';
$output .= '<div class="gt-grid-col">';
$output .= '<button type="submit" class="gt-button gt-full-width gt-style-1">' . esc_html__( 'Sign in', 'loquet' ) . '</button>';
$output .= '<input type="hidden" value="loquet_sign_in_backend" name="action" />';
$output .= '</div>';
if( $reset_password == "1" ) {
$output .= '<div class="gt-grid-col">';
$output .= '<div class="gt-links">';
$output .= '<ul>';
if( $reset_password == "1" ) {
if( !empty( $reset_password_page ) ) {
$output .= '<li>';
$output .= '<a href="' . get_the_permalink( $reset_password_page ) . '">' . esc_html__( 'Lost Your Password?', 'loquet' ) . '</a>';
$output .= '</li>';
} else {
$output .= '<li>';
$output .= '<a href="' . wp_lostpassword_url( get_permalink() ) . '">'. esc_html__( 'Lost Your Password?', 'loquet' ) . '</a>';
$output .= '</li>';
}
}
if( !get_option( 'users_can_register' ) == "0" ) {
$output .= '<li class="gt-show-large">';
$output .= '<a href="javascript:;" class="gt-part-signup-action">' . esc_html__( 'Create Account', 'loquet' ) . '</a>';
$output .= '</li>';
}
$output .= '</ul>';
$output .= '</div>';
$output .= '</div>';
}
$output .= '</div>';
if( $social_login == '1' and !empty( $social_login_shortcode ) ) {
$output .= '<div class="gt-social-login">';
$output .= do_shortcode( $social_login_shortcode );
$output .= '</div>';
}
$output .= '<div class="gt-notices"></div>';
$output .= wp_nonce_field( 'ajax-login-nonce', 'gt-sign-in-security', true, false );
$output .= '</form>';
}
if( $sign_up == "true" ) {
if( get_option( 'users_can_register' ) == "0" ) {
$output .= wpautop( esc_html__( 'New membership are not allowed.', 'loquet' ) ) ;
} else {
$output .= '<form id="gt-sign-up-form" action="' . esc_url( home_url( '/' ) ) . '" method="POST">';
$output .= '<div class="gt-grid gt-grid-1 gt-spacing-10">';
$output .= '<div class="gt-grid-col">';
$output .= '<input type="text" name="gt-sign-up-username" id="gt-sign-up-username" placeholder="' . esc_html__( 'Username', 'loquet' ) . '" required />';
$output .= '</div>';
$output .= '<div class="gt-grid-col">';
$output .= '<input type="email" name="gt-sign-up-email" id="gt-sign-up-email" placeholder="' . esc_html__( 'Email Address', 'loquet' ) . '" required />';
$output .= '</div>';
$output .= '<div class="gt-grid-col">';
$output .= '<input type="password" name="gt-sign-up-password" id="gt-sign-up-password" placeholder="' . esc_html__( 'Password', 'loquet' ) . '" required />';
$output .= '</div>';
$output .= '<div class="gt-grid-col">';
$output .= '<button type="submit" class="gt-button gt-full-width gt-style-1">' . esc_html__( 'Sign Up', 'loquet' ) . '</button>';
$output .= '<input type="hidden" value="loquet_sign_up_backend" name="action" />';
$output .= '</div>';
$output .= '<div class="gt-grid-col gt-show-large">';
$output .= '<div class="gt-links">';
$output .= '<ul>';
$output .= '<li>';
$output .= '<a href="javascript:;" class="gt-part-signin-action">' . esc_html__( 'Have an Account?', 'loquet' ) . '</a>';
$output .= '</li>';
$output .= '</ul>';
$output .= '</div>';
$output .= '</div>';
$output .= '</div>';
if( $social_login == '1' and !empty( $social_login_shortcode ) ) {
$output .= '<div class="gt-social-login">';
$output .= do_shortcode( $social_login_shortcode );
$output .= '</div>';
}
$output .= '<div class="gt-notices"></div>';
$output .= wp_nonce_field( 'ajax-register-nonce', 'gt-sign-up-security', true, false );
$output .= '</form>';
}
}
}
}
return $output;
}
}
/*======
*
* User Box Popup
*
======*/
if( !function_exists( 'loquet_user_box_popup' ) ) {
function loquet_user_box_popup() {
/*====== Customizer Settings ======*/
$popup_style = get_theme_mod( 'loquet_header_user_box_popup_style', 'style-1' );
$sign_in_heading_text = get_theme_mod( 'loquet_header_user_box_sign_in_heading_text' );
$sign_up_heading_text = get_theme_mod( 'loquet_header_user_box_sign_up_heading_text' );
/*====== HTML Output ======*/
$output = "";
if( $popup_style == "style-1" ) {
$output .= '<div id="user-box-popup" class="gt-user-box-popup gt-' . esc_attr( $popup_style ) . ' gt-light gt-animated gt-user-box-popup-active">';
$output .= '<div class="gt-background">';
$output .= '<div class="gt-signin-button">';
$output .= '<h4>' . esc_html__( 'Have an Account?', 'loquet' ) . '</h4>';
if( !empty( $sign_in_heading_text ) ) {
$output .= '<div class="gt-text">';
$output .= wpautop( do_shortcode( $sign_in_heading_text ) );
$output .= '</div>';
}
$output .= '<div class="gt-button gt-style-1 gt-inline-block gt-dark">';
$output .= '<a href="javascript:;" class="gt-part-signin-action">' . esc_html__( 'Sign In', 'loquet' ) . '</a>';
$output .= '</div>';
$output .= '</div>';
$output .= '<div class="gt-signup-button">';
$output .= '<h4>' . esc_html__( 'Create Account', 'loquet' ) . '</h4>';
if( !empty( $sign_up_heading_text ) ) {
$output .= '<div class="gt-text">';
$output .= wpautop( do_shortcode( $sign_up_heading_text ) );
$output .= '</div>';
}
$output .= '<div class="gt-button gt-style-1 gt-inline-block gt-dark">';
$output .= '<a href="javascript:;" class="gt-part-signup-action">' . esc_html__( 'Sign Up', 'loquet' ) . '</a>';
$output .= '</div>';
$output .= '</div>';
$output .= '</div>';
$output .= '<div class="gt-content">';
$output .= '<div class="gt-part-signin gt-part gt-show">';
$output .= '<h4>' . sprintf( esc_html__( 'Sign in to %s', 'loquet' ), esc_attr( get_bloginfo( 'name' ) ) ) . '</h4>';
$output .= loquet_user_box( $sign_in = "true", $sign_up = "false" );
$output .= '</div>';
$output .= '<div class="gt-part-signup gt-part">';
$output .= '<h4>' . esc_html__( 'Create Account', 'loquet' ) . '</h4>';
$output .= loquet_user_box( $sign_in = "false", $sign_up = "true" );
$output .= '</div>';
$output .= '</div>';
$output .= '</div>';
} elseif( $popup_style == "style-2" ) {
$output .= '<div id="user-box-popup" class="gt-user-box-popup gt-' . esc_attr( $popup_style ) . ' gt-light gt-animated gt-user-box-popup-active">';
$output .= '<div class="gt-inner">';
$output .= '<div class="gt-image"></div>';
$output .= '<div class="gt-content">';
$output .= '<div id="gt-part-signin" class="gt-part gt-show">';
$output .= '<div class="gt-tabs">';
$output .= '<ul>';
$output .= '<li>';
$output .= '<a href="javascript:;" class="gt-part-signin-action gt-part-toggle gt-active">' . esc_html__( 'Sign In', 'loquet' ) . '</a>';
$output .= '</li>';
$output .= '<li>';
$output .= '<a href="javascript:;" class="gt-part-signup-action gt-part-toggle">' . esc_html__( 'Sign Up', 'loquet' ) . '</a>';
$output .= '</li>';
$output .= '</ul>';
$output .= '</div>';
$output .= loquet_user_box( $sign_in = "true", $sign_up = "false" );
if( !empty( $sign_in_heading_text ) ) {
$output .= '<div class="gt-text">';
$output .= wpautop( do_shortcode( $sign_in_heading_text ) );
$output .= '</div>';
}
$output .= '</div>';
$output .= '<div id="gt-part-signup" class="gt-part">';
$output .= '<div class="gt-tabs">';
$output .= '<ul>';
$output .= '<li>';
$output .= '<a href="javascript:;" class="gt-part-signin-action gt-part-toggle">' . esc_html__( 'Sign In', 'loquet' ) . '</a>';
$output .= '</li>';
$output .= '<li>';
$output .= '<a href="javascript:;" class="gt-part-signup-action gt-part-toggle gt-active">' . esc_html__( 'Sign Up', 'loquet' ) . '</a>';
$output .= '</li>';
$output .= '</ul>';
$output .= '</div>';
$output .= loquet_user_box( $sign_in = "false", $sign_up = "true" );
if( !empty( $sign_up_heading_text ) ) {
$output .= '<div class="gt-text">';
$output .= wpautop( do_shortcode( $sign_up_heading_text ) );
$output .= '</div>';
}
$output .= '</div>';
$output .= '</div>';
$output .= '</div>';
$output .= '</div>';
}
return $output;
}
}
/*======
*
* Sign In Backend
*
======*/
if( !function_exists( 'loquet_sign_in_backend' ) ) {
function loquet_sign_in_backend() {
$username = esc_attr( esc_js( esc_sql( sanitize_text_field( $_POST['gt-sign-in-username'] ) ) ) );
$password = esc_attr( esc_js( esc_sql( sanitize_text_field( $_POST['gt-sign-in-password'] ) ) ) );
if( isset( $_POST['gt-remember-me'] ) ) {
$remember_me = "true";
} else {
$remember_me = "false";
}
if( !check_ajax_referer( 'ajax-login-nonce', 'gt-sign-in-security', false ) ) {
echo json_encode(
array(
'error' => true,
'message' => wpautop( esc_html__( 'Session token has expired, please reload the page and try again.', 'loquet' ) ),
)
);
} elseif( empty( $username ) || empty( $password ) ) {
echo json_encode(
array(
'error' => true,
'message' => wpautop( esc_html__( 'Please fill all form fields.', 'loquet' ) ),
)
);
} else {
$credentials = array(
'user_login' => esc_attr( $username ),
'user_password' => esc_attr( $password ),
'remember' => esc_attr( $remember_me )
);
$sign_in = wp_signon( $credentials, false );
if( is_wp_error( $sign_in ) ) {
echo json_encode(
array(
'error' => true,
'message' => wpautop( $sign_in->get_error_message() ),
)
);
} else {
echo json_encode(
array(
'error' => false,
'message' => wpautop( esc_html__( 'Login successful, you are being redirected.', 'loquet' ) ),
)
);
}
}
die();
}
add_action( 'wp_ajax_nopriv_loquet_sign_in_backend', 'loquet_sign_in_backend' );
}
/*======
*
* Sign Up Backend
*
======*/
if( !function_exists( 'loquet_sign_up_backend' ) ) {
function loquet_sign_up_backend() {
$username = esc_attr( esc_js( $_POST['gt-sign-up-username'] ) );
$email = esc_attr( esc_js( $_POST['gt-sign-up-email'] ) );
$password = esc_attr( esc_js( $_POST['gt-sign-up-password'] ) );
if( !check_ajax_referer( 'ajax-register-nonce', 'gt-sign-up-security', false ) ) {
echo json_encode(
array(
'error' => true,
'message' => wpautop( esc_html__( 'Session token has expired, please reload the page and try again.', 'loquet' ) )
)
);
die();
} elseif( empty( $username ) || empty( $email ) ) {
echo json_encode(
array(
'error' => true,
'message' => wpautop( esc_html__( 'Please fill all form fields.', 'loquet' ) )
)
);
die();
}
$user_data = array(
'user_login' => $username,
'user_pass' => $password,
'user_email' => $email,
);
$sign_up = wp_insert_user( $user_data );
if( is_wp_error( $sign_up ) ) {
$notices = $sign_up->errors;
$notices_output = "";
foreach( $notices as $notice ) {
$notices_output .= wpautop( $notice[0] );
}
echo json_encode(
array(
'error' => true,
'message' => $notices_output
)
);
} else {
echo json_encode(
array(
'error' => false,
'message' => wpautop( esc_html__( 'Registration completed. You can login from the sign in area. Also please check your inbox.', 'loquet' ) )
)
);
$get_user_meta = get_user_by( 'login', esc_attr( $username ) );
if( !empty( $get_user_meta ) ) {
if( !empty( $get_user_meta->ID ) ) {
wp_new_user_notification( $get_user_meta->ID, '', $notify = 'user' );
}
}
}
die();
}
add_action( 'wp_ajax_nopriv_loquet_sign_up_backend', 'loquet_sign_up_backend' );
}
/*======
*
* Scripts
*
======*/
if( !function_exists( 'loquet_user_box_scripts' ) ) {
function loquet_user_box_scripts() {
wp_enqueue_script( 'ajax-app' );
wp_enqueue_script( 'ajax-login-register-script', get_template_directory_uri() . '/includes/assets/js/user-box.min.js', array(), false, true );
wp_localize_script( 'ajax-login-register-script', 'gt_userbox', array( 'ajaxurl' => esc_url( admin_url( 'admin-ajax.php' ) ), ) );
}
add_action( 'wp_enqueue_scripts', 'loquet_user_box_scripts' );
}