<?php do_action('learn_press_before_quiz_results'); do_action('learn_press_before_enrolled_course'); $my_query = learn_press_get_enrolled_courses($user->ID); $check = 0; if ($my_query->have_posts()) { while ($my_query->have_posts()) { $my_query->the_post(); $quizzes = learn_press_get_quizzes(get_the_ID()); do_action('learn_press_before_quiz_result'); foreach ($quizzes as $quiz) { if (learn_press_user_has_completed_quiz($user->ID, $quiz)) { $check = 1; learn_press_get_template('profile/quiz-content.php', array('user_id' => $user->ID, 'quiz_id' => $quiz)); } } do_action('learn_press_after_quiz_result'); } if (!$check) { do_action('learn_press_before_no_completed_quiz'); echo '<p>' . __('You have not finished any quizzes yet!', 'learn_press') . '</p>'; do_action('learn_press_after_no_completed_quiz'); } } else { do_action('learn_press_before_no_enrolled_course'); echo '<p>' . __('You have not taken any courses yet!', 'learn_press') . '</p>'; do_action('learn_press_after_no_enrolled_course'); } do_action('learn_press_after_enrolled_course'); wp_reset_postdata();
/** * Retake course action */ public static function retake_course() { $course_id = !empty($_REQUEST['course_id']) ? $_REQUEST['course_id'] : 0; $user_id = !empty($_REQUEST['user_id']) ? $_REQUEST['user_id'] : get_current_user_id(); if (!$user_id || !$course_id) { wp_die(__('Error', 'learn_press')); } //// // Of course, user only retake course if he has finished if (!learn_press_user_has_finished_course($course_id, $user_id)) { wp_die(__('Error', 'learn_press')); } // reset course start time $course_time = get_user_meta($user_id, '_lpr_course_time', true); if ($course_time && !empty($course_time[$course_id])) { $course_time[$course_id] = array('start' => time(), 'end' => null); update_user_meta($user_id, '_lpr_course_time', $course_time); } // reset course user finished $course_finished = get_user_meta($user_id, '_lpr_course_finished', true); if ($course_finished && in_array($course_id, $course_finished)) { if (false !== ($position = array_search($course_id, $course_finished))) { unset($course_finished[$position]); update_user_meta($user_id, '_lpr_course_finished', $course_finished); } } $user_finished = get_post_meta($course_id, '_lpr_user_finished', true); if ($user_finished) { if (false !== ($position = array_search($user_id, $user_finished))) { unset($user_finished[$position]); update_post_meta($course_id, '_lpr_user_finished', $user_finished); } } // reset the lessons user has completed $lessons = get_user_meta($user_id, '_lpr_lesson_completed', true); if ($lessons && isset($lessons[$course_id])) { unset($lessons[$course_id]); update_user_meta($user_id, '_lpr_lesson_completed', $lessons); } $quizzes = learn_press_get_quizzes($course_id); // remove all quizzes in the course which user has taken if ($quizzes) { $quiz_start_time = get_user_meta($user_id, '_lpr_quiz_start_time', true); $quiz_question = get_user_meta($user_id, '_lpr_quiz_questions', true); $quiz_current_question = get_user_meta($user_id, '_lpr_quiz_current_question', true); $quiz_question_answer = get_user_meta($user_id, '_lpr_quiz_question_answer', true); $quiz_completed = get_user_meta($user_id, '_lpr_quiz_completed', true); foreach ($quizzes as $quiz_id) { delete_user_meta($user_id, '_lpr_quiz_taken', $quiz_id); if (isset($quiz_start_time[$quiz_id])) { unset($quiz_start_time[$quiz_id]); } if (isset($quiz_question[$quiz_id])) { unset($quiz_question[$quiz_id]); } if (isset($quiz_current_question[$quiz_id])) { unset($quiz_current_question[$quiz_id]); } if (isset($quiz_question_answer[$quiz_id])) { unset($quiz_question_answer[$quiz_id]); } if (isset($quiz_completed[$quiz_id])) { unset($quiz_completed[$quiz_id]); } } update_user_meta($user_id, '_lpr_quiz_start_time', $quiz_start_time); update_user_meta($user_id, '_lpr_quiz_questions', $quiz_question); update_user_meta($user_id, '_lpr_quiz_current_question', $quiz_current_question); update_user_meta($user_id, '_lpr_quiz_question_answer', $quiz_question_answer); update_user_meta($user_id, '_lpr_quiz_completed', $quiz_completed); } update_user_meta($user_id, '_lpr_course_taken', $course_id); wp_send_json(array('redirect' => get_permalink($course_id))); die; }