/**
 * 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));
}
Example #2
0
 /**
  * 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);
}
Example #5
0
<?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>';
    }
}