示例#1
0
 /**
  * Get mark of a quiz for an user
  *
  * @param $quiz_id
  *
  * @return int
  */
 function get_quiz_mark($quiz_id)
 {
     $quiz_questions = get_post_meta($quiz_id, '_lpr_quiz_questions', true);
     $mark = 0;
     if (!$quiz_questions) {
         foreach ($quiz_questions as $question) {
             $correct_answer = get_post_meta($question, '_lpr_question_correct_answer', true);
             $question_mark = get_post_meta($question, '_lpr_question_mark', true);
             $student_answer = lpr_get_question_answer($quiz_id, $question);
             if (array_key_exists($question, $student_answer)) {
                 if ($correct_answer == $student_answer) {
                     $mark += $question_mark;
                 }
             }
         }
     }
     return $mark;
 }
示例#2
0
 /**
  * Finish quiz
  */
 public static function finish_quiz()
 {
     $user_id = get_current_user_id();
     $quiz_id = $_POST['quiz_id'];
     $question_id = $_POST['question_id'];
     $question_answer = $_POST['question_answer'];
     // save current answer as if user may change
     lpr_save_question_answer($quiz_id, $question_id, $question_answer);
     // Show result to frontend
     $quiz_id = $_POST['quiz_id'];
     $quiz_questions = get_post_meta($quiz_id, '_lpr_quiz_questions', true);
     $mark = 0;
     if ($quiz_questions) {
         foreach ($quiz_questions as $question) {
             $correct_answer = get_post_meta($question, '_lpr_question_correct_answer', true);
             $question_mark = get_post_meta($question, '_lpr_question_mark', true);
             $student_answer = lpr_get_question_answer($quiz_id, $question_id);
             if (array_key_exists($question, $student_answer)) {
                 if ($correct_answer == $student_answer) {
                     $mark += $question_mark;
                 }
             }
         }
     }
     // add this quiz to list of completed quizzes
     $quiz_completed = get_user_meta($user_id, '_lpr_quiz_completed', true);
     if ($quiz_completed) {
         if (!isset($quiz_completed[$quiz_id]) || !is_array($quiz_completed[$quiz_id])) {
             $quiz_completed[$quiz_id] = array();
         }
         array_push($quiz_completed[$quiz_id], $mark);
         update_user_meta($user_id, '_lpr_quiz_completed', $quiz_completed);
     } else {
         $quiz_completed = array();
         if (!isset($quiz_completed[$quiz_id]) || !is_array($quiz_completed[$quiz_id])) {
             $quiz_completed[$quiz_id] = array();
         }
         array_push($quiz_completed[$quiz_id], $mark);
         update_user_meta($user_id, '_lpr_quiz_completed', $quiz_completed);
     }
     $retake = get_user_meta($user_id, '_lpr_quiz_retake', true);
     if (isset($retake) && is_array($retake)) {
         $key = array_search($quiz_id, $retake);
         if ($key !== false) {
             unset($retake[$key]);
             update_user_meta($user_id, '_lpr_quiz_retake', $retake);
         }
     }
     die;
 }