function user_has_passed_course($user_passed, $course_id, $user_id) { if ($this->is_public_quiz($course_id)) { if (get_post_meta($course_id, '_lpr_course_final', true) == 'yes' && ($quiz = lpr_get_final_quiz($course_id))) { $passed = learn_press_quiz_evaluation($quiz, $user_id); $passing_condition = learn_press_get_course_passing_condition($course_id); } else { $passed = lpr_course_evaluation($course_id); $passing_condition = 0; } $user_passed = $passing_condition ? $passed >= $passing_condition ? $passed : 0 : $passed == 100; } return $user_passed; }
<?php $course_id = learn_press_get_course_by_quiz(get_the_ID()); $passed = learn_press_user_has_passed_course($course_id); $result = learn_press_get_quiz_result(); ?> <div class="clearfix"></div> <?php if ($passed) { ?> <?php learn_press_message(sprintf(__('You have passed this course with %.2f%% of total', 'learn_press'), $result['mark_percent'] * 100)); } else { ?> <?php $passing_condition = learn_press_get_course_passing_condition($course_id); ?> <?php learn_press_message(sprintf(__('Sorry, you have not passed this course. This course required you pass %.2f%% but your result is only %.2f%%', 'learn_press'), $passing_condition, $result['mark_percent'] * 100), 'error'); }
/** * Return if a student passes course or not * * @param $course_id int * @param $user_id int * * @return boolean */ function learn_press_user_has_passed_course($course_id = null, $user_id = null) { $course_id = learn_press_get_course_id($course_id); if (!$user_id) { $user_id = get_current_user_id(); } if (!$course_id || !$user_id) { return 0; } $has_finished = learn_press_user_has_finished_course($course_id, $user_id); if (get_post_meta($course_id, '_lpr_course_final', true) == 'yes' && ($quiz = lpr_get_final_quiz($course_id))) { $passed = learn_press_quiz_evaluation($quiz, $user_id); $passing_condition = learn_press_get_course_passing_condition($course_id); } else { $passed = lpr_course_evaluation($course_id); $passing_condition = 0; } return $passing_condition ? $passed >= $passing_condition ? $passed : 0 : $passed == 100; }
/** * Show the message let user know that they can finish the course if they want */ function learn_press_passed_conditional() { if (learn_press_user_has_passed_conditional() && !learn_press_user_has_finished_course()) { $passing_condition = learn_press_get_course_passing_condition(); learn_press_message(sprintf(__('You have passed %d percent of course and now you can finish this course if you want', 'learn_press'), $passing_condition)); } }