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; }
function learn_press_user_finished_course_send_email($course_id = null, $user_id = null) { $course_id = learn_press_get_course_id($course_id); if (!$user_id) { $user_id = get_current_user_id(); } $user = get_user_by('id', $user_id); if (empty($user->ID) || !$course_id) { return false; } $mail_to = $user->user_email; $assessment = get_post_meta($course_id, '_lpr_course_final', true); if ('yes' == $assessment) { $quiz_id = lpr_get_final_quiz($course_id); $quiz_result = learn_press_get_quiz_result($user_id, $quiz_id); $course_result = $quiz_result['mark_percent'] * 100; } else { $course_result = 100; } $args = apply_filters('learn_press_vars_passed_course', array('user_name' => !empty($user->display_name) ? $user->display_name : $user->user_nicename, 'course_name' => get_the_title($course_id), 'course_link' => get_permalink($course_id), 'course_result' => sprintf(__('%d%% of total', 'learn_press'), intval($course_result)))); learn_press_send_mail($mail_to, 'passed_course', $args); }
function learn_press_is_final_quiz($quiz_id) { $course_id = learn_press_get_course_by_quiz($quiz_id); if (lpr_get_final_quiz($course_id) == $quiz_id) { return $course_id; } return false; }
function learn_press_get_course_result($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; } 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 $passed; }
/** * Finish course */ public static function finish_course() { $user_id = get_current_user_id(); $course_id = !empty($_POST['course_id']) ? $_POST['course_id'] : 0; if (!$user_id || !$course_id) { wp_die(__('Access denied!', 'learn_press')); } $finish = false; $json = array('finish' => true); $assessment = get_post_meta($course_id, '_lpr_course_final', true); $pass = floatval(get_post_meta($course_id, '_lpr_course_condition', true)); if ($assessment == 'yes') { $final_quiz = lpr_get_final_quiz($course_id); $final_result = learn_press_get_quiz_result($user_id, $final_quiz); // lpr_get_quiz_result( $final_quiz ); if (!empty($final_result) && !empty($final_result['mark_percent']) && $final_result['mark_percent'] * 100 >= $pass) { $finish = true; } } else { $progress = lpr_course_evaluation($course_id); if ($progress >= $pass) { $finish = true; } } if ($finish) { learn_press_finish_course($course_id, $user_id); $json['message'] = __('Congratulation ! You have finished this course', 'learn_press'); } else { $json['finish'] = false; $json['message'] = __('Sorry! You can not finish this course now', 'learn_press'); } wp_send_json($json); die; }
/** * Display the message about status of the course after user finished */ function learn_press_course_finished_message() { if (learn_press_user_has_finished_course()) { $quiz_id = lpr_get_final_quiz(get_the_ID()); learn_press_get_template('course/course-result.php', array('quiz_id' => $quiz_id)); } }