PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 1.8.2
Tutor LMS – eLearning and online course solution v1.8.2
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 / classes / Shortcode.php
tutor / classes Last commit date
Addons.php 5 years ago Admin.php 5 years ago Ajax.php 5 years ago Assets.php 5 years ago Course.php 5 years ago Course_Filter.php 5 years ago Course_Settings_Tabs.php 5 years ago Course_Widget.php 5 years ago Custom_Validation.php 5 years ago Dashboard.php 5 years ago Email.php 5 years ago FormHandler.php 5 years ago Frontend.php 5 years ago Gutenberg.php 5 years ago Instructor.php 5 years ago Instructors_List.php 5 years ago Lesson.php 5 years ago Options.php 5 years ago Post_types.php 5 years ago Private_Course_Access.php 5 years ago Q_and_A.php 5 years ago Question_Answers_List.php 5 years ago Quiz.php 5 years ago Quiz_Attempts_List.php 5 years ago RestAPI.php 5 years ago Rewrite_Rules.php 5 years ago Shortcode.php 5 years ago Student.php 5 years ago Students_List.php 5 years ago Taxonomies.php 5 years ago Template.php 5 years ago Theme_Compatibility.php 5 years ago Tools.php 5 years ago Tutor.php 5 years ago TutorEDD.php 5 years ago Tutor_Base.php 5 years ago Tutor_List_Table.php 5 years ago Tutor_Setup.php 5 years ago Upgrader.php 5 years ago User.php 5 years ago Utils.php 5 years ago Video_Stream.php 5 years ago Withdraw.php 5 years ago Withdraw_Requests_List.php 5 years ago WooCommerce.php 5 years ago
Shortcode.php
201 lines
1 <?php
2 /**
3 * Class Shortcode
4 * @package TUTOR
5 *
6 * @since v.1.0.0
7 */
8
9 namespace TUTOR;
10
11 if (!defined('ABSPATH'))
12 exit;
13
14 class Shortcode {
15
16 private $instructor_layout = array(
17 'pp-top-full',
18 'pp-cp',
19 'pp-top-left',
20 'pp-left-middle',
21 'pp-left-full'
22 );
23
24 public function __construct() {
25 add_shortcode('tutor_student_registration_form', array($this, 'student_registration_form'));
26 add_shortcode('tutor_dashboard', array($this, 'tutor_dashboard'));
27 add_shortcode('tutor_instructor_registration_form', array($this, 'instructor_registration_form'));
28 add_shortcode('tutor_course', array($this, 'tutor_course'));
29
30 add_shortcode('tutor_instructor_list', array($this, 'tutor_instructor_list'));
31 add_action('tutor_options_after_instructors', array($this, 'tutor_instructor_layout'));
32 }
33
34 /**
35 * @return mixed
36 *
37 * Instructor Registration Shortcode
38 *
39 * @since v.1.0.0
40 */
41 public function student_registration_form() {
42 ob_start();
43 if (is_user_logged_in()) {
44 tutor_load_template('dashboard.logged-in');
45 } else {
46 tutor_load_template('dashboard.registration');
47 }
48 return apply_filters('tutor/student/register', ob_get_clean());
49 }
50
51 /**
52 * @return mixed
53 *
54 * Tutor Dashboard for students
55 *
56 * @since v.1.0.0
57 */
58 public function tutor_dashboard() {
59 global $wp_query;
60
61 ob_start();
62 if (is_user_logged_in()) {
63 /**
64 * Added isset() Condition to avoid infinite loop since v.1.5.4
65 * This has cause error by others plugin, Such AS SEO
66 */
67
68 if (!isset($wp_query->query_vars['tutor_dashboard_page'])) {
69 tutor_load_template('dashboard.index');
70 }
71 } else {
72 tutor_load_template('global.login');
73 }
74 return apply_filters('tutor_dashboard/index', ob_get_clean());
75 }
76
77 /**
78 * @return mixed
79 *
80 * Instructor Registration Shortcode
81 *
82 * @since v.1.0.0
83 */
84 public function instructor_registration_form() {
85 ob_start();
86 if (is_user_logged_in()) {
87 tutor_load_template('dashboard.instructor.logged-in');
88 } else {
89 tutor_load_template('dashboard.instructor.registration');
90 }
91 return apply_filters('tutor_dashboard/student/index', ob_get_clean());
92 }
93
94 /**
95 * @param $atts
96 *
97 * @return string
98 *
99 * Shortcode for getting course
100 */
101 public function tutor_course($atts) {
102 $course_post_type = tutor()->course_post_type;
103
104 $a = shortcode_atts(array(
105 'post_type' => $course_post_type,
106 'post_status' => 'publish',
107
108 'id' => '',
109 'exclude_ids' => '',
110 'category' => '',
111
112 'orderby' => 'ID',
113 'order' => 'DESC',
114 'count' => 6,
115 ), $atts);
116
117 if (!empty($a['id'])) {
118 $ids = (array) explode(',', $a['id']);
119 $a['post__in'] = $ids;
120 }
121
122 if (!empty($a['exclude_ids'])) {
123 $exclude_ids = (array) explode(',', $a['exclude_ids']);
124 $a['post__not_in'] = $exclude_ids;
125 }
126 if (!empty($a['category'])) {
127 $category = (array) explode(',', $a['category']);
128
129 $a['tax_query'] = array(
130 array(
131 'taxonomy' => 'course-category',
132 'field' => 'term_id',
133 'terms' => $category,
134 'operator' => 'IN',
135 ),
136 );
137 }
138 $a['posts_per_page'] = (int) $a['count'];
139
140 wp_reset_query();
141 query_posts($a);
142 ob_start();
143
144 $GLOBALS['tutor_shortcode_arg'] = array(
145 'include_course_filter' => isset($atts['course_filter']) ? $atts['course_filter'] === 'on' : null,
146 'column_per_row' => isset($atts['column_per_row']) ? $atts['column_per_row'] : null,
147 'course_per_page' => $a['posts_per_page']
148 );
149
150 tutor_load_template('shortcode.tutor-course');
151 $output = ob_get_clean();
152 wp_reset_query();
153
154 return $output;
155 }
156
157
158 /**
159 * @param $atts
160 *
161 * @return string
162 *
163 * Shortcode for getting instructors
164 */
165 public function tutor_instructor_list($atts){
166 $limit = isset($atts['count']) ? $atts['count'] : 9;
167 $current_page = (isset($_GET['instructor-page']) && is_numeric($_GET['instructor-page']) && $_GET['instructor-page']>=1) ? $_GET['instructor-page'] : 1;
168 $page = $current_page-1;
169
170 // Get instructor list to sow
171 $instructors = tutor_utils()->get_instructors($limit*$page, $limit, '', 'approved');
172 $next_instructors = tutor_utils()->get_instructors($limit*$current_page, $limit, '', 'approved');
173
174 $previous_page = $page>0 ? '?'.http_build_query(array_merge($_GET, array('instructor-page'=>$current_page-1))) : null;
175 $next_page = (is_array($next_instructors) && count($next_instructors)>0) ? '?'.http_build_query(array_merge($_GET, array('instructor-page'=>$current_page+1))) : null;
176
177 $layout = (isset($atts['layout']) && in_array($atts['layout'], $this->instructor_layout)) ? $atts['layout'] : null;
178 $layout = $layout ? $layout : tutor_utils()->get_option('instructor_list_layout', $this->instructor_layout[0]);
179
180 $payload=array(
181 'instructors' => is_array($instructors) ? $instructors : array(),
182 'next_page' => $next_page,
183 'previous_page' => $previous_page,
184 'column_count' => isset($atts['column_per_row']) ? $atts['column_per_row'] : 3,
185 'layout' => $layout
186 );
187
188 ob_start();
189 tutor_load_template('shortcode.tutor-instructor', $payload);
190 return ob_get_clean();
191 }
192
193
194 /**
195 * Show layout selection dashboard in instructor setting
196 */
197 public function tutor_instructor_layout(){
198 tutor_load_template('instructor-setting', array('templates'=>$this->instructor_layout));
199 }
200 }
201