Exemplo n.º 1
0
<?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();
Exemplo n.º 2
0
 /**
  * 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;
 }