HEX
Server: Apache
System: Linux pdx1-shared-a1-31 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: dh_5jabqq (6436002)
PHP: 8.2.29
Disabled: NONE
Upload Files
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' );

}