PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.9.14
Tutor LMS – eLearning and online course solution v3.9.14
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 / restapi / REST_Lesson.php
tutor / restapi Last commit date
REST_Author.php 2 years ago REST_Course.php 2 years ago REST_Course_Announcement.php 2 years ago REST_Lesson.php 2 years ago REST_Quiz.php 1 year ago REST_Rating.php 2 years ago REST_Response.php 2 years ago REST_Topic.php 2 years ago RestAuth.php 2 months ago
REST_Lesson.php
125 lines
1 <?php
2 /**
3 * REST API Lesson
4 *
5 * @package Tutor\RestAPI
6 * @author Themeum <support@themeum.com>
7 * @link https://themeum.com
8 * @since 1.7.1
9 */
10
11 namespace TUTOR;
12
13 use WP_Query;
14 use WP_REST_Request;
15
16 if ( ! defined( 'ABSPATH' ) ) {
17 exit;
18 }
19
20 /**
21 * Class REST_Lesson
22 */
23 class REST_Lesson {
24
25 use REST_Response;
26
27 /**
28 * Post type
29 *
30 * @var string $post_type
31 */
32 private $post_type;
33
34 /**
35 * Post parent ID
36 *
37 * @var int $post_parent
38 */
39 private $post_parent;
40
41 /**
42 * REST_Lesson constructor.
43 */
44 public function __construct() {
45 $this->post_type = tutor()->lesson_post_type;
46 }
47
48 /**
49 * Get lessons for a specific topic.
50 *
51 * @param WP_REST_Request $request REST request object.
52 *
53 * @return mixed
54 */
55 public function topic_lesson( WP_REST_Request $request ) {
56 $this->post_parent = $request->get_param( 'topic_id' );
57
58 if ( ! isset( $this->post_parent ) ) {
59 $response = array(
60 'code' => 'not_found',
61 'message' => __( 'topic_id is required', 'tutor' ),
62 'data' => array(),
63 );
64 return self::send( $response );
65 }
66
67 $args = array(
68 'post_type' => $this->post_type,
69 'post_parent' => $this->post_parent,
70 'posts_per_page' => -1,
71 );
72
73 $lessons_query = new WP_Query( $args );
74
75 $data = array();
76
77 if ( $lessons_query->have_posts() ) {
78 $posts = $lessons_query->get_posts();
79 foreach ( $posts as $post ) {
80
81 $lesson = new \stdClass();
82
83 $lesson->ID = $post->ID;
84 $lesson->post_title = $post->post_title;
85 $lesson->post_content = $post->post_content;
86 $lesson->post_name = $post->post_name;
87 $lesson->topic_id = wp_get_post_parent_id( $lesson->ID );
88
89 $attachments = array();
90 $attachments_id = get_post_meta( $lesson->ID, '_tutor_attachments', false );
91 if ( is_array( $attachments_id ) && count( $attachments_id ) > 0 ) {
92 $attachments_id = $attachments_id[0];
93
94 foreach ( $attachments_id as $id ) {
95 $guid = get_the_guid( $id );
96 array_push( $attachments, $guid );
97 }
98 }
99
100 $lesson->attachments = $attachments;
101 $lesson->thumbnail = get_the_post_thumbnail_url( $lesson->ID );
102 $lesson->video = get_post_meta( $lesson->ID, '_video', false );
103
104 array_push( $data, $lesson );
105 }
106
107 $response = array(
108 'code' => 'success',
109 'message' => __( 'Lesson retrieved successfully', 'tutor' ),
110 'data' => $data,
111 );
112
113 return self::send( $response );
114 }
115
116 $response = array(
117 'code' => 'not_found',
118 'message' => __( 'Lesson not found for the given topic ID', 'tutor' ),
119 'data' => array(),
120 );
121
122 return self::send( $response );
123 }
124 }
125