/** * print out class for quiz body * * @param null $class * @return bool */ function learn_press_quiz_class($class = null) { $quiz = LP()->quiz; if (!$quiz) { return false; } if ($class && is_string($class)) { $class = explode(' ', $class); } elseif (!$class) { $class = array(); } $class[] = "single-quiz"; if (learn_press_user_has_completed_quiz()) { $class[] = "completed"; } elseif (learn_press_user_has_started_quiz()) { $class[] = "started"; } if ($quiz->has('questions')) { $class[] = 'has-questions'; } $class[] = 'clearfix'; $class = array_unique($class); post_class(join(' ', $class)); }
/** * Get quiz status for the user * * @param null $quiz_id * * @return mixed */ function get_quiz_status($quiz_id = null) { if (!$quiz_id) { $quiz_id = $this->get_quiz_field('id'); } $status = ''; if (learn_press_user_has_started_quiz($this->id, $quiz_id)) { $status = 'started'; } if (learn_press_user_has_completed_quiz($this->id, $quiz_id)) { $status = 'completed'; } return apply_filters('learn_press_user_quiz_status', $status, $this, $quiz_id); }
/** * print out class for quiz body * * @param null $class */ function learn_press_quiz_class($class = null) { $class .= " single-quiz clearfix"; if (learn_press_user_has_completed_quiz()) { $class .= " quiz-completed"; } elseif (learn_press_user_has_started_quiz()) { $class .= " quiz-started"; } post_class($class); }
/** * get the time remaining of a quiz has started by an user * * @param null $user_id * @param null $quiz_id * * @return int */ function learn_press_get_quiz_time_remaining($user_id = null, $quiz_id = null) { global $quiz; if (!$user_id) { $user_id = get_current_user_id(); } $quiz_id = $quiz_id ? $quiz_id : ($quiz ? $quiz->id : 0); if (!$quiz_id) { return 0; } $meta = get_user_meta($user_id, '_lpr_quiz_start_time', true); $quiz_duration = get_post_meta($quiz_id, '_lpr_duration', true); $time_remaining = $quiz_duration * 60; $quiz_start_time = !empty($meta[$quiz_id]) ? $meta[$quiz_id] : 0; $quiz_start_time = apply_filters('learn_press_user_quiz_start_time', $quiz_start_time, $quiz_id, $user_id); if ($quiz_duration && learn_press_user_has_started_quiz($user_id, $quiz_id)) { $quiz_duration *= 60; $now = current_time('timestamp'); if ($now < $quiz_start_time + $quiz_duration) { $time_remaining = $quiz_start_time + $quiz_duration - $now; } else { $time_remaining = 0; } } return apply_filters('learn_press_get_quiz_time_remaining', $time_remaining, $user_id, $quiz_id); }
<?php /** * Template for displaying the buttons of a quiz * */ learn_press_prevent_access_directly(); do_action('learn_press_before_quiz_buttons'); ?> <div class="quiz-buttons"> <?php if (!learn_press_user_has_started_quiz()) { ?> <?php do_action('learn_press_before_start_quiz_button'); ?> <button class="button-start-quiz btn" quiz-id="<?php echo get_the_ID(); ?> "> <?php // allow doing quiz if enrolled echo apply_filters('learn_press_start_quiz_button_text', __("Start Quiz", "learn_press")); ?> </button> <?php do_action('learn_press_after_start_quiz_button'); ?> <?php } ?>
function learn_press_course_lesson_quiz_before_title($lesson_or_quiz, $enrolled) { global $learn_press_lesson_quiz_tooltips; if (!$learn_press_lesson_quiz_tooltips) { $learn_press_lesson_quiz_tooltips = array(); } if (!empty($learn_press_lesson_quiz_tooltips[$lesson_or_quiz])) { return; } if (!$enrolled) { if ('lpr_quiz' == get_post_type($lesson_or_quiz)) { $learn_press_lesson_quiz_tooltips[$lesson_or_quiz] = array('message' => __('This is a quiz. Please enroll to do this quiz', 'learn_press')); } else { $learn_press_lesson_quiz_tooltips[$lesson_or_quiz] = array('message' => __('This is a lesson. Please enroll to study this lesson', 'learn_press')); } } else { if ('lpr_quiz' == get_post_type($lesson_or_quiz)) { if (learn_press_user_has_started_quiz(null, $lesson_or_quiz)) { $result = learn_press_get_quiz_result(null, $lesson_or_quiz); $tooltip = sprintf(__('%s and answered correctly %d out of %d total questions', 'learn_press'), learn_press_user_has_completed_quiz(null, $lesson_or_quiz) ? __('You have finished this quiz', 'learn_press') : __('You have started this quiz', 'learn_press'), $result['correct'], $result['questions_count']); } else { $tooltip = __('This is a quiz. Click on link to complete this quiz', 'learn_press'); } $learn_press_lesson_quiz_tooltips[$lesson_or_quiz] = array('message' => $tooltip); } else { if (learn_press_user_has_completed_lesson($lesson_or_quiz)) { $learn_press_lesson_quiz_tooltips[$lesson_or_quiz] = array('completed' => __('Congratulations! You have completed this lesson', 'learn_press')); } else { $learn_press_lesson_quiz_tooltips[$lesson_or_quiz] = array('current' => __('You are studying this lesson', 'learn_press'), 'message' => __('This is a lesson. Click on link to complete this lesson', 'learn_press')); } } } if ('lpr_quiz' == get_post_type($lesson_or_quiz)) { echo '<span class="lesson-quiz-icon quiz"></span>'; } else { echo '<span class="lesson-quiz-icon lesson"></span>'; } }