HEX
Server: LiteSpeed
System: Linux server.zepintelhosting.com 4.18.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64
User: enamadmin (1026)
PHP: 8.2.30
Disabled: exec,system,passthru,shell_exec,proc_open,popen,apache_child_terminate
Upload Files
File: /home/enamadmin/www/wp-content/plugins/miniorange-2-factor-authentication/controllers/support.php
<?php
/**
 * Used to send the support query if user face any issue.
 *
 * @package miniorange-2-factor-authentication/controllers
 */

// Needed in both.
use TwoFA\Helper\MocURL;
use TwoFA\Helper\MoWpnsMessages;
use TwoFA\Helper\MoWpnsUtility;
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}
	global $mo2f_dir_name;

if ( current_user_can( 'manage_options' ) && isset( $_POST['nonce'] ) ? wp_verify_nonce( sanitize_key( wp_unslash( $_POST['nonce'] ) ), 'mo2f-support-form-nonce' ) : '0' ) {

	$option = isset( $_POST['option'] ) ? sanitize_text_field( wp_unslash( $_POST['option'] ) ) : '';
	switch ( $option ) {
		case 'mo_wpns_send_query':
			wpns_handle_support_form();
			break;
	}
}

	$current_user_info = wp_get_current_user();
	$email             = get_option( 'mo2f_email' );
	$phone             = get_option( 'mo_wpns_admin_phone' );


if ( empty( $email ) ) {
	$email = $current_user_info->user_email;
}
	$support_form_nonce = wp_create_nonce( 'mo2f-support-form-nonce' );
	$query_submitted    = get_transient( 'mo2f_query_sent' ) ? 'true' : 'false';
	require $mo2f_dir_name . 'views' . DIRECTORY_SEPARATOR . 'support.php';


	/* SUPPORT FORM RELATED FUNCTIONS */

	// Function to handle support form submit.
	/**
	 * This method is used to receive the customer query.
	 *
	 * @return void
	 */
function wpns_handle_support_form() {
	$show_message = new MoWpnsMessages();
	$nonce        = isset( $_POST['nonce'] ) ? sanitize_key( wp_unslash( $_POST['nonce'] ) ) : null;
	if ( ! wp_verify_nonce( $nonce, 'mo2f-support-form-nonce' ) ) {
		$show_message->mo2f_show_message( MoWpnsMessages::lang_translate( MoWpnsMessages::SOMETHING_WENT_WRONG ), 'ERROR' );
	}
	$email              = isset( $_POST['mo2f_query_email'] ) ? sanitize_email( wp_unslash( $_POST['mo2f_query_email'] ) ) : '';
	$query              = isset( $_POST['mo2f_query'] ) ? sanitize_text_field( wp_unslash( $_POST['mo2f_query'] ) ) : '';
	$phone              = isset( $_POST['mo2f_query_phone'] ) ? sanitize_text_field( wp_unslash( $_POST['mo2f_query_phone'] ) ) : '';
	$send_configuration = ( isset( $_POST['mo2f_send_configuration'] ) ? sanitize_text_field( wp_unslash( $_POST['mo2f_send_configuration'] ) ) : 0 );
	if ( empty( $email ) || empty( $query ) ) {
		$show_message->mo2f_show_message( MoWpnsMessages::lang_translate( MoWpnsMessages::SUPPORT_FORM_VALUES ), 'ERROR' );
		return;
	}
	$contact_us = new MocURL();
	if ( $send_configuration ) {
		$query = $query . MoWpnsUtility::mo_2fa_send_configuration( true );
	}
	if ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
		$show_message->mo2f_show_message( MoWpnsMessages::lang_translate( MoWpnsMessages::SUPPORT_FORM_ERROR ), 'ERROR' );
	} elseif ( get_transient( 'mo2f_query_sent' ) ) {
		$show_message->mo2f_show_message( MoWpnsMessages::lang_translate( MoWpnsMessages::QUERY_SUBMITTED ), 'SUCCESS' );
	} else {
		$submited = json_decode( $contact_us->submit_contact_us( $email, $phone, $query ), true );
	}
	if ( json_last_error() === JSON_ERROR_NONE && $submited ) {
		$show_message->mo2f_show_message( MoWpnsMessages::lang_translate( MoWpnsMessages::SUPPORT_FORM_SENT ), 'SUCCESS' );
	} else {
		$show_message->mo2f_show_message( MoWpnsMessages::lang_translate( MoWpnsMessages::SUPPORT_FORM_ERROR ), 'ERROR' );
	}
}