PluginProbe
Tutor LMS – eLearning and online course solution / 3.4.2
Tutor LMS – eLearning and online course solution v3.4.2
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 4.0.2 4.0.1 4.0.0 3.9.15 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 All 191 releases
← All changes | classes/Admin.php +43 -319 trunk3.4.2 View file →
@@ -9,10 +9,8 @@
9 9 */
10 10
11 11 namespace TUTOR;
12 12
13 -defined( 'ABSPATH' ) || exit;
14 -
15 13 use Tutor\Ecommerce\OrderController;
16 14 use Tutor\Helpers\HttpHelper;
17 15 use TUTOR\Input;
18 16 use Tutor\Models\CourseModel;
@@ -17,8 +15,12 @@
17 15 use TUTOR\Input;
18 16 use Tutor\Models\CourseModel;
19 17 use Tutor\Traits\JsonResponse;
20 18
19 +if ( ! defined( 'ABSPATH' ) ) {
20 + exit;
21 +}
22 +
21 23 /**
22 24 * Admin Class
23 25 *
24 26 * @since 1.0.0
@@ -29,12 +31,12 @@
29 31 /**
30 32 * Constructor
31 33 *
32 34 * @since 1.0.0
33 - *
34 35 * @return void
35 36 */
36 37 public function __construct() {
38 +
37 39 add_action( 'admin_notices', array( $this, 'show_unstable_version_admin_notice' ) );
38 40
39 41 add_action( 'admin_menu', array( $this, 'register_menu' ) );
40 42 // Force activate menu for necessary.
@@ -41,9 +43,8 @@
41 43 add_filter( 'parent_file', array( $this, 'parent_menu_active' ) );
42 44 add_filter( 'submenu_file', array( $this, 'submenu_file_active' ), 10, 2 );
43 45
44 46 add_action( 'admin_init', array( $this, 'filter_posts_for_instructors' ) );
45 - add_action( 'admin_init', array( $this, 'redirect_to_welcome_page' ) );
46 47 add_action( 'load-post.php', array( $this, 'check_if_current_users_post' ) );
47 48
48 49 add_filter( 'plugin_action_links_' . plugin_basename( TUTOR_FILE ), array( $this, 'plugin_action_links' ) );
49 50
@@ -56,125 +57,16 @@
56 57 add_action( 'widgets_init', array( $this, 'register_course_widget' ) );
57 58
58 59 // Handle flash toast message for redirect_to util helper.
59 60 add_action( 'admin_head', array( new Utils(), 'handle_flash_message' ), 999 );
61 + // add_action( 'tutor_after_settings_menu', '\TUTOR\WhatsNew::whats_new_menu', 11 );
60 62
61 63 add_action( 'admin_bar_menu', array( $this, 'add_toolbar_items' ), 100 );
62 64
63 65 add_action( 'wp_ajax_tutor_do_not_show_feature_page', array( $this, 'handle_do_not_show_feature_page' ) );
64 -
65 - add_action( 'upgrader_process_complete', array( $this, 'set_permalink_flag_on_upgrade' ), 10, 2 );
66 -
67 - add_action( 'admin_notices', array( $this, 'show_offer_notice' ) );
68 - add_action( 'wp_ajax_tutor_dismiss_offer_notice', array( $this, 'ajax_dismiss_offer_notice' ) );
69 66 }
70 67
71 68 /**
72 - * Flush Tutor permalink rewrite rules after updates.
73 - *
74 - * @since 4.0.0
75 - *
76 - * @param mixed $upgrader_object Upgrader instance.
77 - * @param array $options Extra arguments passed to the hook.
78 - *
79 - * @return void
80 - */
81 - public function set_permalink_flag_on_upgrade( $upgrader_object, $options ) {
82 - Permalink::set_permalink_reset_flag( $upgrader_object, $options );
83 - }
84 -
85 - /**
86 - * Check offer notice is dismissed.
87 - *
88 - * @since 4.0.0
89 - *
90 - * @return bool
91 - */
92 - private function is_offer_notice_dismissed() {
93 - return '4.0.0' === get_transient( 'tutor_offer_notice_dismissed' );
94 - }
95 -
96 - /**
97 - * Show offer notice
98 - *
99 - * @since 4.0.0
100 - *
101 - * @return void
102 - */
103 - public function show_offer_notice() {
104 - if ( ! User::is_admin() || Input::has( 'welcome', Input::GET_REQUEST ) ) {
105 - return;
106 - }
107 -
108 - $is_free_user = ! tutor()->has_pro;
109 - $cta_label = __( 'Claim 30% OFF', 'tutor' );
110 - $cta_link = 'https://tutorlms.com/pricing/?utm_source=tutor-plugin&utm_medium=notice&utm_campaign=tutor-lms-pro-offer';
111 -
112 - $now = new \DateTimeImmutable( 'now', wp_timezone() );
113 - $expiration_dt = '2026-07-15 23:59:59';
114 - $expiration = new \DateTimeImmutable( $expiration_dt, wp_timezone() );
115 -
116 - $remaining = max( 0, $expiration->getTimestamp() - $now->getTimestamp() );
117 -
118 - $days = floor( $remaining / DAY_IN_SECONDS );
119 - $hours = floor( ( $remaining % DAY_IN_SECONDS ) / HOUR_IN_SECONDS );
120 - $minutes = floor( ( $remaining % HOUR_IN_SECONDS ) / MINUTE_IN_SECONDS );
121 - $seconds = $remaining % MINUTE_IN_SECONDS;
122 -
123 - $expire_in = sprintf(
124 - '%dd:%02dh:%02d:%02d',
125 - $days,
126 - $hours,
127 - $minutes,
128 - $seconds
129 - );
130 -
131 - if ( $is_free_user && $remaining > 0 && ! self::is_offer_notice_dismissed() ) {
132 - ?>
133 - <div class="tutor-offer-notice">
134 - <div class="tutor-offer-notice-wrapper">
135 - <div class="tutor-offer-notice-left">
136 - <div data-subheader><?php esc_html_e( '4.0 launch offer', 'tutor' ); ?></div>
137 - <div data-header><?php esc_html_e( '30% OFF', 'tutor' ); ?></div>
138 - <div data-subtext><?php esc_html_e( 'on all annual plans', 'tutor' ); ?></div>
139 - </div>
140 - <div class="tutor-offer-notice-right">
141 - <div class="tutor-offer-notice-text"><?php esc_html_e( 'Offer ends by', 'tutor' ); ?> <span class="tutor-offer-notice-timer" data-expiry="<?php echo esc_attr( $expiration->getTimestamp() ); ?>"><?php echo esc_html( $expire_in ); ?></span></div>
142 - <a class="tutor-offer-notice-cta" href="<?php echo esc_url( $cta_link ); ?>" target="_blank">
143 - <?php echo esc_html( $cta_label ); ?>
144 - <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="#fff" d="M13.938 6.937a.55.55 0 0 0-.786 0 .555.555 0 0 0 0 .778l3.338 3.34H5.243a.55.55 0 0 0-.55.551c0 .305.242.558.55.558h11.246l-3.337 3.334a.563.563 0 0 0 0 .785.55.55 0 0 0 .786 0L18.217 12a.543.543 0 0 0 0-.78z"/></svg>
145 - </a>
146 - </div>
147 - </div>
148 - <button type="button" class="tutor-offer-notice-dismiss"><span class="tutor-icon-times"></span></button>
149 - </div>
150 - <?php
151 - }
152 - }
153 -
154 - /**
155 - * Dismiss offer notice.
156 - *
157 - * @since 4.0.0
158 - *
159 - * @return void JSON response.
160 - */
161 - public function ajax_dismiss_offer_notice() {
162 - if ( ! User::is_admin() ) {
163 - $this->response_bad_request( tutor_utils()->error_message() );
164 - }
165 -
166 - if ( self::is_offer_notice_dismissed() ) {
167 - $this->response_bad_request( __( 'You have already dismissed the offer notice.', 'tutor' ) );
168 - }
169 -
170 - // Set expiry until next day.
171 - $expiration = strtotime( 'tomorrow' ) - time();
172 - set_transient( 'tutor_offer_notice_dismissed', '4.0.0', $expiration );
173 - $this->json_response( __( 'Notice dismissed', 'tutor' ) );
174 - }
175 -
176 - /**
177 69 * Show unstable version notice.
178 70 *
179 71 * @since 3.0.0
180 72 *
@@ -197,10 +89,8 @@
197 89 /**
198 90 * Register admin menus
199 91 *
200 92 * @since 1.0.0
201 - * @since 3.8.0 re-organize admin menu.
202 - *
203 93 * @return void
204 94 */
205 95 public function register_menu() {
206 96 $has_pro = tutor()->has_pro;
@@ -239,178 +129,52 @@
239 129 $icon_base64_uri,
240 130 $menu_position
241 131 );
242 132
243 - new WhatsNew();
133 + // Added @since v2.0.0.
134 + add_submenu_page( 'tutor', __( 'Courses', 'tutor' ), __( 'Courses', 'tutor' ), 'manage_tutor_instructor', 'tutor', array( $this, 'tutor_course_list' ) );
244 135
245 - $admin_menu = apply_filters(
246 - 'tutor_admin_menu',
247 - array(
248 - 'group_one' => array(
249 - 'courses' => array(
250 - 'parent_slug' => 'tutor',
251 - 'page_title' => __( 'Courses', 'tutor' ),
252 - 'menu_title' => __( 'Courses', 'tutor' ),
253 - 'capability' => 'manage_tutor_instructor',
254 - 'menu_slug' => 'tutor',
255 - 'callback' => array( $this, 'tutor_course_list' ),
256 - ),
257 - 'content_bank' => null,
258 - 'course_builder' => array(
259 - 'parent_slug' => 'tutor',
260 - 'page_title' => __( 'Course Builder', 'tutor' ),
261 - 'menu_title' => '<span class="tutor-create-course">Create Course</span>',
262 - 'capability' => 'manage_tutor_instructor',
263 - 'menu_slug' => 'create-course',
264 - 'callback' => array( new Course( false ), 'load_course_builder' ),
265 - ),
266 - 'categories' => array(
267 - 'parent_slug' => 'tutor',
268 - 'page_title' => __( 'Categories', 'tutor' ),
269 - 'menu_title' => __( 'Categories', 'tutor' ),
270 - 'capability' => 'manage_tutor',
271 - 'menu_slug' => 'edit-tags.php?taxonomy=course-category&post_type=' . $course_post_type,
272 - ),
273 - 'tags' => array(
274 - 'parent_slug' => 'tutor',
275 - 'page_title' => __( 'Tags', 'tutor' ),
276 - 'menu_title' => __( 'Tags', 'tutor' ),
277 - 'capability' => 'manage_tutor',
278 - 'menu_slug' => 'edit-tags.php?taxonomy=course-tag&post_type=' . $course_post_type,
279 - ),
280 - ),
281 - 'group_two' => array(
282 - 'orders' => null,
283 - 'subscriptions' => null,
284 - 'coupons' => null,
285 - 'students' => array(
286 - 'parent_slug' => 'tutor',
287 - 'page_title' => __( 'Students', 'tutor' ),
288 - 'menu_title' => __( 'Students', 'tutor' ),
289 - 'capability' => 'manage_tutor',
290 - 'menu_slug' => Students_List::STUDENTS_LIST_PAGE,
291 - 'callback' => array( $this, 'tutor_students' ),
136 + if ( '3.0.0' !== get_option( 'tutor-new-feature' ) ) {
137 + add_submenu_page( 'tutor', __( 'What\'s New', 'tutor' ), sprintf( '<span class="tutor-new-feature tutor-text-orange">%s</span>', __( 'What\'s New', 'tutor' ) ), 'manage_tutor', 'tutor-new-feature', array( $this, 'feature_promotion_page' ) );
138 + }
292 139
293 - ),
294 - 'announcements' => array(
295 - 'parent_slug' => 'tutor',
296 - 'page_title' => __( 'Announcements', 'tutor' ),
297 - 'menu_title' => __( 'Announcements', 'tutor' ),
298 - 'capability' => 'manage_tutor_instructor',
299 - 'menu_slug' => 'tutor_announcements',
300 - 'callback' => array( $this, 'tutor_announcements' ),
140 + // Ecommerce menu @since 3.0.0.
141 + do_action( 'tutor_after_courses_admin_menu' );
301 142
302 - ),
303 - 'assignments' => null,
304 - 'quiz_attempts' => array(
305 - 'parent_slug' => 'tutor',
306 - 'page_title' => __( 'Quiz Attempts', 'tutor' ),
307 - 'menu_title' => __( 'Quiz Attempts', 'tutor' ),
308 - 'capability' => 'manage_tutor_instructor',
309 - 'menu_slug' => Quiz_Attempts_List::QUIZ_ATTEMPT_PAGE,
310 - 'callback' => array( $this, 'quiz_attempts' ),
311 - ),
312 - 'q_and_a' => array(
313 - 'parent_slug' => 'tutor',
314 - 'page_title' => __( 'Q&A', 'tutor' ),
315 - 'menu_title' => __( 'Q&A ', 'tutor' ) . $unanswered_bubble,
316 - 'capability' => 'manage_tutor_instructor',
317 - 'menu_slug' => Question_Answers_List::QUESTION_ANSWER_PAGE,
318 - 'callback' => array( $this, 'question_answer' ),
319 - ),
320 - 'enrollments' => null,
321 - 'reports' => null,
322 - 'gradebook' => null,
323 - 'instructors' => $enable_course_marketplace ? array(
324 - 'parent_slug' => 'tutor',
325 - 'page_title' => __( 'Instructors', 'tutor' ),
326 - 'menu_title' => __( 'Instructors', 'tutor' ),
327 - 'capability' => 'manage_tutor',
328 - 'menu_slug' => Instructors_List::INSTRUCTOR_LIST_PAGE,
329 - 'callback' => array( $this, 'tutor_instructors' ),
330 - ) : null,
331 - 'withdraw_requests' => $enable_course_marketplace ? array(
332 - 'parent_slug' => 'tutor',
333 - 'page_title' => __( 'Withdraw Requests', 'tutor' ),
334 - 'menu_title' => __( 'Withdraw Requests', 'tutor' ),
335 - 'capability' => 'manage_tutor',
336 - 'menu_slug' => Withdraw_Requests_List::WITHDRAW_REQUEST_LIST_PAGE,
337 - 'callback' => array( $this, 'withdraw_requests' ),
338 - ) : null,
339 - ),
340 - 'group_three' => array(
341 - 'google_classroom' => null,
342 - 'zoom' => null,
343 - 'google_meet' => null,
344 - 'h5p' => null,
345 - 'addons' => array(
346 - 'parent_slug' => 'tutor',
347 - 'page_title' => __( 'Addons', 'tutor' ),
348 - 'menu_title' => __( 'Addons', 'tutor' ),
349 - 'capability' => 'manage_tutor',
350 - 'menu_slug' => 'tutor-addons',
351 - 'callback' => array( $this, 'enable_disable_addons' ),
352 - ),
353 - 'tools' => array(
354 - 'parent_slug' => 'tutor',
355 - 'page_title' => __( 'Tools', 'tutor' ),
356 - 'menu_title' => __( 'Tools', 'tutor' ),
357 - 'capability' => 'manage_tutor',
358 - 'menu_slug' => 'tutor-tools',
359 - 'callback' => array( new Tools_V2(), 'load_tools_page' ),
360 - ),
361 - 'settings' => array(
362 - 'parent_slug' => 'tutor',
363 - 'page_title' => __( 'Settings', 'tutor' ),
364 - 'menu_title' => __( 'Settings', 'tutor' ),
365 - 'capability' => 'manage_tutor',
366 - 'menu_slug' => 'tutor_settings',
367 - 'callback' => array( new Options_V2(), 'load_settings_page' ),
368 - ),
369 - 'license' => null,
370 - 'whats_new' => null,
371 - 'upgrade_to_pro' => $has_pro ? null : array(
372 - 'parent_slug' => 'tutor',
373 - 'page_title' => __( 'Upgrade to Pro', 'tutor' ),
374 - 'menu_title' => sprintf( '<span class="tutor-get-pro-text">%s</span>', __( 'Upgrade to Pro', 'tutor' ) ),
375 - 'capability' => 'manage_options',
376 - 'menu_slug' => 'tutor-get-pro',
377 - 'callback' => array( $this, 'tutor_get_pro' ),
378 - ),
379 - ),
380 - )
381 - );
143 + add_submenu_page( 'tutor', __( 'Course Builder', 'tutor' ), '<span class="tutor-create-course">Create Course</span>', 'manage_tutor_instructor', 'create-course', array( new Course( false ), 'load_course_builder' ) );
382 144
383 - foreach ( $admin_menu as $group => $menu ) {
384 - foreach ( $menu as $name => $args ) {
385 - if ( empty( $args ) ) {
386 - continue;
387 - }
145 + // Extendable action hook @since 2.2.0.
146 + do_action( 'tutor_after_courses_menu' );
388 147
389 - // Backward compatibility hook.
390 - if ( 'addons' === $name ) {
391 - do_action( 'tutor_admin_register' );
392 - }
148 + add_submenu_page( 'tutor', __( 'Categories', 'tutor' ), __( 'Categories', 'tutor' ), 'manage_tutor', 'edit-tags.php?taxonomy=course-category&post_type=' . $course_post_type, null );
393 149
394 - // Backward compatibility hook.
395 - do_action( "tutor_before_{$name}_admin_menu" );
150 + add_submenu_page( 'tutor', __( 'Tags', 'tutor' ), __( 'Tags', 'tutor' ), 'manage_tutor', 'edit-tags.php?taxonomy=course-tag&post_type=' . $course_post_type, null );
396 151
397 - do_action( "tutor_before_{$name}_menu" );
398 - add_submenu_page( $args['parent_slug'], $args['page_title'], $args['menu_title'], $args['capability'], $args['menu_slug'], $args['callback'] ?? '', $args['position'] ?? null );
152 + add_submenu_page( 'tutor', __( 'Students', 'tutor' ), __( 'Students', 'tutor' ), 'manage_tutor', Students_List::STUDENTS_LIST_PAGE, array( $this, 'tutor_students' ) );
399 153
400 - // Backward compatibility hook.
401 - do_action( "tutor_after_{$name}_menu" );
154 + if ( $enable_course_marketplace ) {
155 + add_submenu_page( 'tutor', __( 'Instructors', 'tutor' ), __( 'Instructors', 'tutor' ), 'manage_tutor', Instructors_List::INSTRUCTOR_LIST_PAGE, array( $this, 'tutor_instructors' ) );
156 + add_submenu_page( 'tutor', __( 'Withdraw Requests', 'tutor' ), __( 'Withdraw Requests', 'tutor' ), 'manage_tutor', Withdraw_Requests_List::WITHDRAW_REQUEST_LIST_PAGE, array( $this, 'withdraw_requests' ) );
157 + }
402 158
403 - do_action( "tutor_after_{$name}_admin_menu" );
404 - }
159 + add_submenu_page( 'tutor', __( 'Announcements', 'tutor' ), __( 'Announcements', 'tutor' ), 'manage_tutor_instructor', 'tutor_announcements', array( $this, 'tutor_announcements' ) );
405 160
406 - if ( 'group_three' !== $group ) {
407 - if ( 'group_two' === $group && ! current_user_can( 'manage_options' ) ) {
408 - continue;
409 - }
161 + add_submenu_page( 'tutor', __( 'Q&A', 'tutor' ), __( 'Q&A ', 'tutor' ) . $unanswered_bubble, 'manage_tutor_instructor', Question_Answers_List::QUESTION_ANSWER_PAGE, array( $this, 'question_answer' ) );
410 162
411 - add_submenu_page( 'tutor', '', '<span class="tutor-admin-menu-separator"></span>', 'manage_tutor_instructor', '#' );
412 - }
163 + add_submenu_page( 'tutor', __( 'Quiz Attempts', 'tutor' ), __( 'Quiz Attempts', 'tutor' ), 'manage_tutor_instructor', Quiz_Attempts_List::QUIZ_ATTEMPT_PAGE, array( $this, 'quiz_attempts' ) );
164 +
165 + add_submenu_page( 'tutor', __( 'Addons', 'tutor' ), __( 'Addons', 'tutor' ), 'manage_tutor', 'tutor-addons', array( $this, 'enable_disable_addons' ) );
166 +
167 + do_action( 'tutor_admin_register' );
168 +
169 + add_submenu_page( 'tutor', __( 'Tools', 'tutor' ), __( 'Tools', 'tutor' ), 'manage_tutor', 'tutor-tools', array( new \TUTOR\Tools_V2(), 'load_tools_page' ) );
170 +
171 + add_submenu_page( 'tutor', __( 'Settings', 'tutor' ), __( 'Settings', 'tutor' ), 'manage_tutor', 'tutor_settings', array( new \TUTOR\Options_V2(), 'load_settings_page' ) );
172 +
173 + do_action( 'tutor_after_settings_menu' );
174 +
175 + if ( ! $has_pro ) {
176 + add_submenu_page( 'tutor', __( 'Upgrade to Pro', 'tutor' ), sprintf( '<span class="tutor-get-pro-text">%s</span>', __( 'Upgrade to Pro', 'tutor' ) ), 'manage_options', 'tutor-get-pro', array( $this, 'tutor_get_pro' ) );
413 177 }
414 178 }
415 179
416 180 /**
@@ -441,8 +205,9 @@
441 205 * @return void
442 206 */
443 207 public function feature_promotion_page() {
444 208 include tutor()->path . 'views/pages/welcome.php';
209 + // include tutor()->path . 'views/pages/feature-promotion.php';
445 210 }
446 211
447 212 /**
448 213 * Show students page
@@ -447,9 +212,8 @@
447 212 /**
448 213 * Show students page
449 214 *
450 215 * @since 1.0.0
451 - *
452 216 * @return void
453 217 */
454 218 public function tutor_students() {
455 219 include tutor()->path . 'views/pages/students.php';
@@ -458,9 +222,8 @@
458 222 /**
459 223 * Show instructor page
460 224 *
461 225 * @since 1.0.0
462 - *
463 226 * @return void
464 227 */
465 228 public function tutor_instructors() {
466 229 include tutor()->path . 'views/pages/instructors.php';
@@ -469,9 +232,8 @@
469 232 /**
470 233 * Show announcements page
471 234 *
472 235 * @since 1.0.0
473 - *
474 236 * @return void
475 237 */
476 238 public function tutor_announcements() {
477 239 include tutor()->path . 'views/pages/announcements.php';
@@ -480,9 +242,8 @@
480 242 /**
481 243 * Show Q&A page
482 244 *
483 245 * @since 1.0.0
484 - *
485 246 * @return void
486 247 */
487 248 public function question_answer() {
488 249 include tutor()->path . 'views/pages/question_answer.php';
@@ -491,9 +252,8 @@
491 252 /**
492 253 * Show quiz attempts page
493 254 *
494 255 * @since 1.0.0
495 - *
496 256 * @return void
497 257 */
498 258 public function quiz_attempts() {
499 259 include tutor()->path . 'views/pages/quiz_attempts.php';
@@ -502,9 +262,8 @@
502 262 /**
503 263 * Show the withdraw requests table
504 264 *
505 265 * @since 1.2.0
506 - *
507 266 * @return void
508 267 */
509 268 public function withdraw_requests() {
510 269 include tutor()->path . 'views/pages/withdraw_requests.php';
@@ -513,9 +272,8 @@
513 272 /**
514 273 * Enable or disable addons
515 274 *
516 275 * @since 1.0.0
517 - *
518 276 * @return void
519 277 */
520 278 public function enable_disable_addons() {
521 279 include tutor()->path . 'views/pages/enable_disable_addons.php';
@@ -524,9 +282,8 @@
524 282 /**
525 283 * Tutor tools page (OLD)
526 284 *
527 285 * @since 1.0.0
528 - *
529 286 * @return void
530 287 */
531 288 public function tutor_tools_old() {
532 289 $tutor_admin_tools_page = Input::get( 'tutor_admin_tools_page' );
@@ -559,9 +316,8 @@
559 316 /**
560 317 * Show pro upgrade page
561 318 *
562 319 * @since 1.0.0
563 - *
564 320 * @return void
565 321 */
566 322 public function tutor_get_pro() {
567 323 include tutor()->path . 'views/pages/get-pro.php';
@@ -572,9 +328,8 @@
572 328 *
573 329 * @since 1.0.0
574 330 *
575 331 * @param string $parent_file parent file.
576 - *
577 332 * @return string
578 333 */
579 334 public function parent_menu_active( $parent_file ) {
580 335 $taxonomy = Input::get( 'taxonomy' );
@@ -612,9 +367,8 @@
612 367 /**
613 368 * Filter posts for instructor
614 369 *
615 370 * @since 1.0.0
616 - *
617 371 * @return void
618 372 */
619 373 public function filter_posts_for_instructors() {
620 374 if ( ! current_user_can( 'administrator' ) && current_user_can( tutor()->instructor_role ) ) {
@@ -628,9 +382,8 @@
628 382 *
629 383 * @since 1.0.0
630 384 *
631 385 * @param mixed $clauses clauses.
632 - *
633 386 * @return mixed
634 387 */
635 388 public function posts_clauses_request( $clauses ) {
636 389
@@ -660,9 +413,8 @@
660 413 /**
661 414 * Prevent unauthorised course/lesson edit page by direct URL
662 415 *
663 416 * @since 1.0.0
664 - *
665 417 * @return void
666 418 */
667 419 public function check_if_current_users_post() {
668 420 if ( current_user_can( 'administrator' ) || ! current_user_can( tutor()->instructor_role ) ) {
@@ -701,9 +453,8 @@
701 453 *
702 454 * @since 1.0.0
703 455 *
704 456 * @param string $template_path template file path.
705 - *
706 457 * @return array
707 458 */
708 459 public static function scan_template_files( $template_path = null ) {
709 460 if ( ! $template_path ) {
@@ -733,9 +484,8 @@
733 484 /**
734 485 * Get Template overridden files
735 486 *
736 487 * @since 1.0.0
737 - *
738 488 * @return array
739 489 */
740 490 public static function template_overridden_files() {
741 491 $template_files = self::scan_template_files();
@@ -762,9 +512,8 @@
762 512 *
763 513 * @since 1.0.0
764 514 *
765 515 * @param array $actions action list.
766 - *
767 516 * @return array
768 517 */
769 518 public function plugin_action_links( $actions ) {
770 519 $has_pro = tutor()->has_pro;
@@ -797,14 +546,14 @@
797 546
798 547 if ( tutor()->basename === $plugin_file ) {
799 548 $plugin_meta[] = sprintf(
800 549 '<a href="%s"><strong style="color: #03bd24">%s</strong></a>',
801 - esc_url( 'https://tutorlms.com/docs/?utm_source=tutor&utm_medium=plugins_installation_list&utm_campaign=plugin_docs_link' ),
550 + esc_url( 'https://docs.themeum.com/tutor-lms/?utm_source=tutor&utm_medium=plugins_installation_list&utm_campaign=plugin_docs_link' ),
802 551 esc_html__( 'Documentation', 'tutor' )
803 552 );
804 553 $plugin_meta[] = sprintf(
805 554 '<a href="%s"><strong style="color: #03bd24">%s</strong></a>',
806 - esc_url( 'https://tutorlms.com/support/?utm_source=tutor&utm_medium=plugins_installation_list&utm_campaign=plugin_support_link' ),
555 + esc_url( 'https://www.themeum.com/contact-us/?utm_source=tutor&utm_medium=plugins_installation_list&utm_campaign=plugin_support_link' ),
807 556 esc_html__( 'Get Support', 'tutor' )
808 557 );
809 558 }
810 559
@@ -816,9 +565,8 @@
816 565 *
817 566 * @since 1.0.0
818 567 *
819 568 * @param string $footer_text footer text.
820 - *
821 569 * @return string
822 570 */
823 571 public function admin_footer_text( $footer_text ) {
824 572 $current_screen = get_current_screen();
@@ -844,9 +592,9 @@
844 592 * @since 1.0.0
845 593 * @return void
846 594 */
847 595 public function register_course_widget() {
848 - register_widget( Course_Widget::class );
596 + register_widget( 'Tutor\Course_Widget' );
849 597 }
850 598
851 599 /**
852 600 * Tutor Course List
@@ -851,9 +599,8 @@
851 599 /**
852 600 * Tutor Course List
853 601 *
854 602 * @since 2.0.0
855 - *
856 603 * @return void
857 604 */
858 605 public function tutor_course_list() {
859 606 include tutor()->path . 'views/pages/course-list.php';
@@ -907,9 +654,8 @@
907 654 /**
908 655 * Show welcome page
909 656 *
910 657 * @since 1.0.0
911 - *
912 658 * @return void
913 659 */
914 660 public function welcome_page() {
915 661 Tutor_Setup::mark_as_visited();
@@ -961,28 +707,6 @@
961 707 );
962 708 }
963 709
964 710 return $admin_bar;
965 - }
966 -
967 - /**
968 - * Redirect to welcome page if user is not logged in.
969 - *
970 - * @since 4.0.0
971 - *
972 - * @return void
973 - */
974 - public function redirect_to_welcome_page() {
975 - // Skip for fresh installs, during the setup wizard, or during AJAX.
976 - if ( ! get_option( 'tutor_wizard' ) || 'tutor-setup' === Input::get( 'page' ) || wp_doing_ajax() ) {
977 - return;
978 - }
979 -
980 - $tutor_new_feature = get_option( 'tutor-new-feature' );
981 - if ( version_compare( $tutor_new_feature, '4.0.0-rc.2', '>=' ) ) {
982 - return;
983 - }
984 -
985 - wp_safe_redirect( admin_url( 'admin.php?page=tutor&welcome=1' ) );
986 - update_option( 'tutor-new-feature', TUTOR_VERSION );
987 711 }
988 712 }