/**
 * 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
<?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();
/**
 * Mark a quiz is completed for an user
 *
 * @param int $quiz_id
 * @param int $user_id
 */
function learn_press_mark_quiz_complete($quiz_id = null, $user_id = null)
{
    $quiz_id = learn_press_get_quiz_id($quiz_id);
    if (!learn_press_user_has_completed_quiz($quiz_id)) {
        if (!$user_id) {
            $user_id = get_current_user_id();
        }
        // update quiz start time if not set
        $quiz_start_time = get_user_meta($user_id, '_lpr_quiz_start_time', true);
        if (empty($quiz_start_time[$quiz_id])) {
            $quiz_start_time[$quiz_id] = time();
            update_user_meta($user_id, '_lpr_quiz_start_time', $quiz_start_time);
        }
        // update questions
        if ($questions = learn_press_get_quiz_questions($quiz_id)) {
            // stores the questions
            $question_ids = array_keys($questions);
            $meta = get_user_meta($user_id, '_lpr_quiz_questions', true);
            if (!is_array($meta)) {
                $meta = array($quiz_id => $question_ids);
            }
            if (empty($meta[$quiz_id])) {
                $meta[$quiz_id] = $question_ids;
            }
            update_user_meta($user_id, '_lpr_quiz_questions', $meta);
            // stores current question
            $meta = get_user_meta($user_id, '_lpr_quiz_current_question', true);
            if (!is_array($meta)) {
                $meta = array($quiz_id => $question_ids[0]);
            }
            if (empty($meta[$quiz_id])) {
                $meta[$quiz_id] = end($question_ids);
            }
            update_user_meta($user_id, '_lpr_quiz_current_question', $meta);
        }
        // update answers
        $quizzes = get_user_meta($user_id, '_lpr_quiz_question_answer', true);
        if (!is_array($quizzes)) {
            $quizzes = array();
        }
        if (empty($quizzes[$quiz_id])) {
            $quizzes[$quiz_id] = array();
            update_user_meta($user_id, '_lpr_quiz_question_answer', $quizzes);
        }
        // update the quiz's ID to the completed list
        $quiz_completed = get_user_meta($user_id, '_lpr_quiz_completed', true);
        if (!$quiz_completed) {
            $quiz_completed = array();
        }
        if (empty($quiz_completed[$quiz_id])) {
            $quiz_completed[$quiz_id] = time();
            update_user_meta($user_id, '_lpr_quiz_completed', $quiz_completed);
        }
        // count
        //add_user_meta($user_id, '_lpr_quiz_taken', $quiz_id);
    }
}
Example #4
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);
 }
		<h3><?php 
        echo $title;
        ?>
</h3>
	<?php 
    }
    ?>
	<?php 
    do_action('learn_press_quiz_questions_before_questions_loop');
    ?>
	<ul>
		<?php 
    $index = 0;
    $question_loop_template = learn_press_locate_template('quiz/loop.php');
    $current_question = learn_press_get_current_question();
    $quiz_completed = learn_press_user_has_completed_quiz();
    if (!empty($question_list)) {
        foreach ($question_list as $question_id => $question_options) {
            $index++;
            $question_title = get_the_title($question_id);
            $question = get_post($question_id);
            if ($current_question && $current_question == $question_id && !$quiz_completed) {
                $current = true;
            } else {
                $current = false;
            }
            // include to ensure that sub-template can be load all variables from here
            require $question_loop_template;
        }
    }
    ?>
Example #6
0
<?php

/**
 * Template for displaying the remaining time of a quiz
 *
 */
learn_press_prevent_access_directly();
if (learn_press_user_has_completed_quiz()) {
    return;
}
if (learn_press_get_quiz_duration()) {
    do_action('learn_press_before_quiz_clock');
    ?>
<div class="quiz-clock">
    <div class="quiz-timer">
        <div id="quiz-countdown"></div>
        <p class="quiz-countdown-text">
            <span class="quiz-time-remaining-text">
                <?php 
    echo apply_filters('learn_press_quiz_time_remaining_text', __('Time remaining', 'learn_press'));
    ?>
            </span>
            <span class="quiz-time-remaining-label"><?php 
    echo apply_filters('learn_press_quiz_time_label', __('mins/secs', 'learn_press'));
    ?>
</span>
        </p>
    </div>
</div>
<?php 
    do_action('learn_press_after_quiz_clock');
 /**
  * The class of lesson in course curriculum
  *
  * @param int          $quiz_id
  * @param string|array $class
  */
 function learn_press_course_quiz_class($quiz_id = null, $class = null)
 {
     if (is_string($class) && $class) {
         $class = preg_split('!\\s+!', $class);
     } else {
         $class = array();
     }
     $classes = array('course-quiz course-item');
     if (learn_press_user_has_completed_quiz(null, $quiz_id)) {
         $classes[] = "completed";
     }
     $classes = array_unique(array_merge($classes, $class));
     echo 'class="' . join(' ', $classes) . '"';
 }
Example #8
0
<?php

learn_press_prevent_access_directly();
if (learn_press_user_has_completed_quiz(learn_press_get_current_user_id())) {
    return;
}
do_action('learn_press_before_quiz_question_nav_buttons');
?>
<div class="quiz-question-nav-buttons">
    <?php 
$question_id = !empty($_REQUEST['question']) ? $_REQUEST['question'] : 0;
?>
    <?php 
//if( $prev = learn_press_get_user_prev_question_url( get_the_ID(), $question_id ) ){
?>
    <button type="button" data-nav="prev"  class="prev-question" data-url="<?php 
echo $prev;
?>
"><?php 
echo apply_filters('learn_press_quiz_question_nav_button_back_title', __('Back', 'learn_press'));
?>
</button>
    <?php 
//}
?>
    <?php 
//if( $next = learn_press_get_user_next_question_url( get_the_ID(), $question_id ) ){
?>
    <button type="button" data-nav="next" class="next-question" data-url="<?php 
echo $next;
?>
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>';
    }
}