HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-31-18-78 6.17.0-1017-aws #17~24.04.1-Ubuntu SMP Tue May 26 21:09:53 UTC 2026 aarch64
User: ubuntu (1000)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //proc/thread-self/cwd/personality-test/test_save.php
<?php
include_once '../wp-config.php';

# test taken msg
include_once '../wp-content/plugins/psychometrics/api/psy_mail_sms_functions.php';

global $wpdb;
$PSY_EXAMS = $wpdb->prefix . PSY_EXAMS;
$PSY_USERS_DETAILS = $wpdb->prefix . PSY_USERS_DETAILS;
$PSY_SP_QUESTION = $wpdb->prefix . PSY_SP_QUESTION;
$PSY_SP_OPTION_VALUE = $wpdb->prefix . PSY_SP_OPTION_VALUE;
$PSY_TEST_GEN_TEST_TAKEN = $wpdb->prefix . PSY_TEST_GEN_TEST_TAKEN;
$PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER = $wpdb->prefix . PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER;

# get cuurent user
global $current_user;
$user_id = $current_user->ID;

$type = $_REQUEST['type'];
$time_taken_in_seconds = $_REQUEST['time_taken_in_seconds'];
$jsonDecodeQues = $_REQUEST['param'];

$testID = $jsonDecodeQues[1]['test_taken_id'];
$examid = $jsonDecodeQues[1]['exam_id'];
$app_status = $jsonDecodeQues[1]['app_status'];

$statusArray = array();
$checkTestExist = $wpdb->get_var("SELECT count(*) from $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER where test_taken_id='$testID'");

# student name
$user_name = $wpdb->get_var("SELECT first_name FROM $PSY_USERS_DETAILS where user_id='$user_id'");

# get exam name
$examName = $wpdb->get_var("SELECT e.category_name FROM $PSY_TEST_GEN_TEST_TAKEN as t INNER JOIN $PSY_EXAMS as e on e.exam_category_id=t.exam_category_id WHERE t.test_taken_id='$testID'");

if($checkTestExist>0){
	foreach($jsonDecodeQues as $quesAr){
		$q_no = $quesAr['q_no'];
		$question_id = $quesAr['question_id'];
		$test_taken_id = $quesAr['test_taken_id'];
		$subject_id = $quesAr['subject_id'];
		$module_id = $quesAr['module_id'];
		$answer = $quesAr['answer'];
		$entered_time = $quesAr['entered_time'];
		$time_taken = $quesAr['time_taken'];
		$tag_status = $quesAr['tag_status'];

		if($entered_time=='0'){$e_time='NULL';
			$subquery = "ques_start_time=$e_time";
		}else{$e_time=$entered_time;
			$subquery = "ques_start_time='$e_time'";
		}
		if($time_taken=='0'){$t_time='NULL';
			$subquery2 = "ques_end_time=$t_time";
		}else{$t_time=$time_taken;
			$subquery2 = "ques_end_time='$t_time'";
		}

		$updateTestQuestion = $wpdb->query("UPDATE $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER set answer='$answer', ques_status='$tag_status',  $subquery, $subquery2 where test_taken_id='$test_taken_id' and test_question_id='$question_id'");


	}

		if($type=='complete')
		{

			$curDate = date('Y-m-d H:i:s');
			$getTestSummary = $wpdb->get_row("SELECT SUM(CASE WHEN qa.answer=1 THEN so.option_1 WHEN qa.answer=2 THEN so.option_2 WHEN qa.answer=3 THEN so.option_3 END) as correctQn, count(CASE WHEN qa.answer!=0 THEN 1 end) as attepmt,count(CASE WHEN qa.answer=0 THEN 1 end) as unAttemptQn from $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER as qa Inner join $PSY_SP_OPTION_VALUE as so on so.question_id = qa.test_question_id where qa.test_taken_id='$testID'");
			$correctQn = $getTestSummary->correctQn;
			$answerSelect = $getTestSummary->attepmt;
			$unAttemptQn = $getTestSummary->unAttemptQn;

			$wpdb->query("UPDATE $PSY_TEST_GEN_TEST_TAKEN set answer_selected='$answerSelect', correct_answer='$correctQn', wrong_answer='0', unattempt_answer='$unAttemptQn', time_taken_in_seconds='$time_taken_in_seconds', status='Y', finish_date='$curDate' where test_taken_id='$testID'");

			$get_subject = $wpdb->get_results("SELECT count(test_question_id) as total_mark,subject_id from $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER where test_taken_id='$testID' group by subject_id");

			# send msg on test completion
			$examNamenew = str_replace('Test','',$examName);
			sendTestakenSms('9873224446', $user_name, $examNamenew);
		} else if($type!='complete')
		{

			$getTestSummary = $wpdb->get_row("SELECT SUM(CASE WHEN qa.answer=1 THEN so.option_1 WHEN qa.answer=2 THEN so.option_2 WHEN qa.answer=3 THEN so.option_3 END) as correctQn, count(CASE WHEN qa.answer!=0 THEN 1 end) as attepmt,count(CASE WHEN qa.answer=0 THEN 1 end) as unAttemptQn from $PSY_TEST_GEN_TEST_TAKEN_QUESTION_ANSWER as qa Inner join $PSY_SP_OPTION_VALUE as so on so.question_id = qa.test_question_id where qa.test_taken_id='$testID'");
			$correctQn = $getTestSummary->correctQn;
			$unAttemptQn = $getTestSummary->unAttemptQn;
			$answerSelect = $getTestSummary->attepmt;

			$updateTimeTaken = $wpdb->query("UPDATE $PSY_TEST_GEN_TEST_TAKEN set answer_selected='$answerSelect',correct_answer='$correctQn', wrong_answer='$inCorrectQn', unattempt_answer='$unAttemptQn', time_taken_in_seconds='$time_taken_in_seconds',status='N' where test_taken_id='$testID'");
		}

		$statusArray[] = array('type_test'=>$type, 'status' =>'success', 'test_taken_id' => $testID);
}
else{
		$statusArray[] = array('type_test'=>$type, 'status' =>'fail', 'test_taken_id' => $testID);
	}
	echo json_encode($statusArray);