/** * Finish a course by ID of an user * When a course marked is finished then also mark all lessons, quizzes as completed * * @param int $course_id * @param int $user_id * * @return array */ function learn_press_finish_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(); } $course_finished = get_user_meta($user_id, '_lpr_course_finished', true); if (!$course_finished) { $course_finished = array(); } $course_finished[] = $course_id; $course_finished = array_unique($course_finished); update_user_meta($user_id, '_lpr_course_finished', $course_finished); $user_finished = get_post_meta($course_id, '_lpr_user_finished', true); if (!$user_finished) { $user_finished = array(); } $user_finished[] = $user_id; update_post_meta($course_id, '_lpr_user_finished', $user_finished); $lesson_quiz = learn_press_get_lessons_quizzes($course_id, false); if ($lesson_quiz) { foreach ($lesson_quiz as $post) { if ('lpr_lesson' == $post->post_type) { learn_press_mark_lesson_complete($post->ID); } else { learn_press_mark_quiz_complete($post->ID); } } } do_action('learn_press_user_finished_course', $course_id, $user_id); return array('finish' => true, 'message' => ''); }
/** * Finish a course by ID of an user * When a course marked is finished then also mark all lessons, quizzes as completed * * @param int $course_id * @param int $user_id * * @return array */ function learn_press_finish_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(); } $can_finish = !learn_press_get_current_user()->is('guest'); if (!apply_filters('lp_before_finish_course', $can_finish, $course_id, $user_id)) { return; } $course_finished = get_user_meta($user_id, '_lpr_course_finished', true); if (!$course_finished) { $course_finished = array(); } $course_finished[] = $course_id; $course_finished = array_unique($course_finished); update_user_meta($user_id, '_lpr_course_finished', $course_finished); $course_time = get_user_meta($user_id, '_lpr_course_time', true); if (!$course_time) { $course_time = array(); } if (!empty($course_time[$course_id])) { $course_time[$course_id]['end'] = current_time('timestamp'); } update_user_meta($user_id, '_lpr_course_time', $course_time); //learn_press_output_file( $course_time, 'finish_course.txt' ); $user_finished = get_post_meta($course_id, '_lpr_user_finished', true); if (!$user_finished) { $user_finished = array(); } $user_finished[] = $user_id; update_post_meta($course_id, '_lpr_user_finished', $user_finished); $lesson_quiz = learn_press_get_lessons_quizzes($course_id, false); if ($lesson_quiz) { foreach ($lesson_quiz as $post) { if ('lpr_lesson' == $post->post_type) { learn_press_mark_lesson_complete($post->ID); } else { learn_press_mark_quiz_complete($post->ID); } } } do_action('learn_press_user_finished_course', $course_id, $user_id); return array('finish' => true, 'message' => ''); }