/** * Calculate the progress of a student in a course * [Modified by TuNguyen on May 18 2015] * * @param $course_id * * @return float|int */ function lpr_course_evaluation($course_id) { $user_id = get_current_user_id(); $lesson_completed = get_user_meta($user_id, '_lpr_lesson_completed', true); $number_lesson = sizeof(learn_press_get_lessons_in_course($course_id)); //lpr_get_number_lesson( $course_id ); if ($lesson_completed && !empty($lesson_completed[$course_id]) && $number_lesson != 0) { $course_result = sizeof($lesson_completed[$course_id]) / $number_lesson; } else { $course_result = 0; } return $course_result * 100; }
/** * Calculate the progress of a student in a course * [Modified by TuNguyen on May 18 2015] * * @param $course_id * * @return float|int */ function lpr_course_evaluation($course_id) { $user_id = get_current_user_id(); $lesson_completed = get_user_meta($user_id, '_lpr_lesson_completed', true); $all_lessons = learn_press_get_lessons_in_course($course_id); $number_lesson = sizeof($all_lessons); if ($lesson_completed && !empty($lesson_completed[$course_id]) && $number_lesson != 0) { $not_complete = array_diff($all_lessons, $lesson_completed[$course_id]); $course_result = ($number_lesson - sizeof($not_complete)) / $number_lesson; } else { $course_result = 0; } $return = $course_result * 100; return apply_filters('lpr_course_evaluation', $return, $course_id, $user_id); }
/** * Complete lesson */ public static function complete_lesson() { global $post; $user_id = get_current_user_id(); $lesson_id = !empty($_POST['lesson']) ? $_POST['lesson'] : 0; if (!$user_id || !$lesson_id) { wp_die(__('Access denied!', 'learn_press')); } $response = array(); if (learn_press_mark_lesson_complete($lesson_id, $user_id)) { $course_id = learn_press_get_course_by_lesson($lesson_id); $lessons = learn_press_get_lessons_in_course($course_id); $lesson_completed = get_user_meta($user_id, '_lpr_lesson_completed', true); $lesson_completed = !empty($lesson_completed[$course_id]) ? $lesson_completed[$course_id] : array(); if ($lessons) { if (false !== ($pos = array_search($lesson_id, $lessons))) { $loop = $pos == count($lessons) - 1 ? 0 : $pos + 1; $infinite = 0; $max = count($lessons); while (in_array($lessons[$loop], $lesson_completed) && $lessons[$loop] != $lesson_id) { $loop++; if ($loop == $max) { $loop = 0; } if ($infinite > $max) { break; } } if ($lessons[$loop] != $lesson_id) { $response['url'] = learn_press_get_course_lesson_permalink($lessons[$loop], $course_id); } else { $response['url'] = learn_press_get_course_lesson_permalink($lesson_id, $course_id); } } } } learn_press_send_json($response); die; }
/** * Display the next/previous buttons to move the lesson to next or previous */ function learn_press_course_content_next_prev_lesson() { // we are not in the loop of the course // we are in the loop of the lesson $course_id = learn_press_get_course_by_lesson(get_the_ID()); if (!learn_press_user_has_enrolled_course($course_id)) { return; } $lessons = learn_press_get_lessons_in_course($course_id); if (!is_array($lessons)) { return; } $current_position = array_search(get_the_ID(), $lessons); $prev = null; $next = null; if (1 < ($n = sizeof($lessons))) { if ($current_position < sizeof($lessons) - 1) { $next_position = $current_position + 1; $next_id = $lessons[$next_position]; $button_text = get_the_title($next_id); $button_text = apply_filters('learn_press_course_content_next_button_text', $button_text, $next_id, $course_id); $next = sprintf('<a href="%s" class="next-lesson" data-id="%d">%s</a>', learn_press_get_course_lesson_permalink($next_id, $course_id), $next_id, $button_text); } if ($current_position > 0) { $prev_position = $current_position - 1; $prev_id = $lessons[$prev_position]; $button_text = get_the_title($prev_id); $button_text = apply_filters('learn_press_course_content_prev_button_text', $button_text, $prev_id, $course_id); $prev = sprintf('<a href="%s" class="prev-lesson" data-id="%d">%s</a>', learn_press_get_course_lesson_permalink($prev_id, $course_id), $prev_id, $button_text); } $args = compact('prev_id', 'next_id', 'prev', 'next'); do_action('learn_press_before_course_content_lesson_nav', $args); printf('<p class="course-content-lesson-nav">%s%s</p>', $prev, $next); do_action('learn_press_after_course_content_lesson_nav', $args); } }
/** * Complete lesson */ public static function complete_lesson() { $nonce = learn_press_get_request('nonce'); $item_id = learn_press_get_request('id'); $post = get_post($item_id); if (!$post || $post && !wp_verify_nonce($nonce, sprintf('learn-press-complete-%s-%d', $post->post_type, $post->ID))) { throw new Exception(__('Error ', 'learn_press')); } $user = learn_press_get_current_user(); $response = array('result' => 'error'); if ($user->complete_lesson($item_id)) { ob_start(); learn_press_display_message(__('Congratulations! You have completed this lesson.', 'learn_press')); $response['message'] = ob_get_clean(); $response['result'] = 'success'; } learn_press_send_json($response); die; global $post; $user_id = get_current_user_id(); $lesson_id = !empty($_POST['lesson']) ? $_POST['lesson'] : 0; if (!$user_id || !$lesson_id) { wp_die(__('Access denied!', 'learn_press')); } $response = array(); if (learn_press_mark_lesson_complete($lesson_id, $user_id)) { $course_id = learn_press_get_course_by_lesson($lesson_id); $lessons = learn_press_get_lessons_in_course($course_id); $lesson_completed = get_user_meta($user_id, '_lpr_lesson_completed', true); $lesson_completed = !empty($lesson_completed[$course_id]) ? $lesson_completed[$course_id] : array(); if ($lessons) { if (false !== ($pos = array_search($lesson_id, $lessons))) { $loop = $pos == count($lessons) - 1 ? 0 : $pos + 1; $infinite = 0; $max = count($lessons); while (in_array($lessons[$loop], $lesson_completed) && $lessons[$loop] != $lesson_id) { $loop++; if ($loop == $max) { $loop = 0; } if ($infinite > $max) { break; } } if ($lessons[$loop] != $lesson_id) { $response['url'] = learn_press_get_course_lesson_permalink($lessons[$loop], $course_id); } else { $response['url'] = learn_press_get_course_lesson_permalink($lesson_id, $course_id); } } } } learn_press_send_json($response); die; }