PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 2.1.1
Tutor LMS – eLearning and online course solution v2.1.1
3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / models / LessonModel.php
tutor / models Last commit date
CourseModel.php 3 years ago LessonModel.php 3 years ago QuizModel.php 3 years ago WithdrawModel.php 3 years ago
LessonModel.php
120 lines
1 <?php
2 namespace Tutor\Models;
3
4 /**
5 * Class LessonModel
6 *
7 * @since 2.0.10
8 */
9 class LessonModel {
10
11 /**
12 * Get total number of lesson
13 *
14 * @return int
15 * @since 2.0.2
16 */
17 public static function get_total_lesson() {
18 global $wpdb;
19 $lesson_type = tutor()->lesson_post_type;
20
21 $sql = "SELECT COUNT(DISTINCT lesson.ID)
22 FROM {$wpdb->posts} lesson
23 INNER JOIN {$wpdb->posts} topic ON lesson.post_parent=topic.ID
24 INNER JOIN {$wpdb->posts} course ON topic.post_parent=course.ID
25 WHERE lesson.post_type = %s
26 AND lesson.post_status = %s
27 AND course.post_status = %s
28 AND topic.post_status = %s";
29
30 return $wpdb->get_var( $wpdb->prepare( $sql, $lesson_type, 'publish', 'publish', 'publish' ) );
31 }
32
33 /**
34 * Get total lesson count by a course
35 *
36 * @param int $course_id
37 * @return int
38 * @since 1.0.0
39 */
40 public function get_lesson_count_by_course( $course_id = 0 ) {
41 $course_id = tutor_utils()->get_post_id( $course_id );
42 return count( tutor_utils()->get_course_content_ids_by( tutor()->lesson_post_type, tutor()->course_post_type, $course_id ) );
43 }
44
45 /**
46 * Get lesson reading info by key
47 *
48 * @param int $lesson_id
49 * @param int $user_id
50 * @param string $key
51 *
52 * @return array|bool|mixed
53 *
54 * @since 1.0.0
55 */
56 public function get_lesson_reading_info( $lesson_id = 0, $user_id = 0, $key = '' ) {
57 $lesson_id = tutor_utils()->get_post_id( $lesson_id );
58 $user_id = tutor_utils()->get_user_id( $user_id );
59 $lesson_info = $this->get_lesson_reading_info_full( $lesson_id, $user_id );
60
61 return tutor_utils()->avalue_dot( $key, $lesson_info );
62 }
63
64 /**
65 * Get student lesson reading current info
66 *
67 * @param int $lesson_id
68 * @param int $user_id
69 *
70 * @return array|bool|mixed
71 *
72 * @since 1.0.0
73 */
74 public function get_lesson_reading_info_full( $lesson_id = 0, $user_id = 0 ) {
75 $lesson_id = tutor_utils()->get_post_id( $lesson_id );
76 $user_id = tutor_utils()->get_user_id( $user_id );
77
78 $lesson_info = (array) maybe_unserialize( get_user_meta( $user_id, '_lesson_reading_info', true ) );
79 return tutor_utils()->avalue_dot( $lesson_id, $lesson_info );
80 }
81
82 /**
83 * Update student lesson reading info
84 *
85 * @param int $lesson_id
86 * @param int $user_id
87 * @param array $data
88 *
89 * @return void
90 *
91 * @since 1.0.0
92 */
93 public static function update_lesson_reading_info( $lesson_id = 0, $user_id = 0, $key = '', $value = '' ) {
94 $lesson_id = tutor_utils()->get_post_id( $lesson_id );
95 $user_id = tutor_utils()->get_user_id( $user_id );
96
97 if ( $key && $value ) {
98 $lesson_info = (array) maybe_unserialize( get_user_meta( $user_id, '_lesson_reading_info', true ) );
99 $lesson_info[ $lesson_id ][ $key ] = $value;
100 update_user_meta( $user_id, '_lesson_reading_info', $lesson_info );
101 }
102 }
103
104 /**
105 * Mark lesson complete
106 *
107 * @param int $post_id
108 * @return void
109 * @since 1.0.0
110 */
111 public static function mark_lesson_complete( $post_id = 0, $user_id = 0 ) {
112 $post_id = tutor_utils()->get_post_id( $post_id );
113 $user_id = tutor_utils()->get_user_id( $user_id );
114
115 do_action( 'tutor_mark_lesson_complete_before', $post_id, $user_id );
116 update_user_meta( $user_id, '_tutor_completed_lesson_id_' . $post_id, tutor_time() );
117 do_action( 'tutor_mark_lesson_complete_after', $post_id, $user_id );
118 }
119 }
120