PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 2.6.1
Tutor LMS – eLearning and online course solution v2.6.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 / tutor.php
tutor Last commit date
assets 2 years ago cache 2 years ago classes 2 years ago helpers 2 years ago includes 2 years ago languages 2 years ago models 2 years ago restapi 2 years ago templates 2 years ago traits 2 years ago vendor 2 years ago views 2 years ago readme.txt 2 years ago tutor.php 2 years ago
tutor.php
180 lines
1 <?php
2 /**
3 * Plugin Name: Tutor LMS
4 * Plugin URI: https://www.themeum.com/product/tutor-lms/
5 * Description: Tutor is a complete solution for creating a Learning Management System in WordPress way. It can help you to create small to large scale online education site very conveniently. Power features like report, certificate, course preview, private file sharing make Tutor a robust plugin for any educational institutes.
6 * Author: Themeum
7 * Version: 2.6.1
8 * Author URI: https://themeum.com
9 * Requires PHP: 7.4
10 * Requires at least: 5.3
11 * Tested up to: 6.4
12 * License: GPLv2 or later
13 * Text Domain: tutor
14 *
15 * @package Tutor
16 */
17
18 if ( ! defined( 'ABSPATH' ) ) {
19 exit;
20 }
21
22 require_once 'vendor/autoload.php';
23
24 /**
25 * Defined the tutor main file
26 */
27 define( 'TUTOR_VERSION', '2.6.1' );
28 define( 'TUTOR_FILE', __FILE__ );
29
30 /**
31 * Load tutor text domain for translation
32 */
33 add_action(
34 'init',
35 function () {
36 load_plugin_textdomain( 'tutor', false, basename( dirname( __FILE__ ) ) . '/languages' );
37 }
38 );
39
40 if ( ! function_exists( 'tutor' ) ) {
41 /**
42 * Tutor helper function.
43 *
44 * @since 1.0.0
45 *
46 * @return object
47 */
48 function tutor() {
49 if ( isset( $GLOBALS['tutor_plugin_info'] ) ) {
50 return $GLOBALS['tutor_plugin_info'];
51 }
52
53 $path = plugin_dir_path( TUTOR_FILE );
54 $has_pro = defined( 'TUTOR_PRO_VERSION' );
55
56 // Prepare the basepath.
57 $home_url = get_home_url();
58 $parsed = parse_url( $home_url );
59 $base_path = ( is_array( $parsed ) && isset( $parsed['path'] ) ) ? $parsed['path'] : '/';
60 $base_path = rtrim( $base_path, '/' ) . '/';
61 // Get current URL.
62 $current_url = trailingslashit( $home_url ) . substr( $_SERVER['REQUEST_URI'], strlen( $base_path ) );//phpcs:ignore
63
64 $info = array(
65 'path' => $path,
66 'url' => plugin_dir_url( TUTOR_FILE ),
67 'icon_dir' => plugin_dir_url( TUTOR_FILE ) . 'assets/images/images-v2/icons/',
68 'v2_img_dir' => plugin_dir_url( TUTOR_FILE ) . 'assets/images/images-v2/',
69 'current_url' => $current_url,
70 'basename' => plugin_basename( TUTOR_FILE ),
71 'basepath' => $base_path,
72 'version' => TUTOR_VERSION,
73 'nonce_action' => 'tutor_nonce_action',
74 'nonce' => '_tutor_nonce',
75 'course_post_type' => apply_filters( 'tutor_course_post_type', 'courses' ),
76 'lesson_post_type' => apply_filters( 'tutor_lesson_post_type', 'lesson' ),
77 'instructor_role' => apply_filters( 'tutor_instructor_role', 'tutor_instructor' ),
78 'instructor_role_name' => apply_filters( 'tutor_instructor_role_name', __( 'Tutor Instructor', 'tutor' ) ),
79 'template_path' => apply_filters( 'tutor_template_path', 'tutor/' ),
80 'has_pro' => apply_filters( 'tutor_has_pro', $has_pro ),
81 // @since v2.0.6.
82 'topics_post_type' => apply_filters( 'tutor_topics_post_type', 'topics' ),
83 'announcement_post_type' => apply_filters( 'tutor_announcement_post_type', 'tutor_announcements' ),
84 'assignment_post_type' => apply_filters( 'tutor_assignment_post_type', 'tutor_assignments' ),
85 'enrollment_post_type' => apply_filters( 'tutor_enrollment_post_type', 'tutor_enrolled' ),
86 'quiz_post_type' => apply_filters( 'tutor_quiz_post_type', 'tutor_quiz' ),
87 'zoom_post_type' => apply_filters( 'tutor_zoom_meeting_post_type', 'tutor_zoom_meeting' ),
88 'meet_post_type' => apply_filters( 'tutor_google_meeting_post_type', 'tutor-google-meet' ),
89 );
90
91 $GLOBALS['tutor_plugin_info'] = (object) $info;
92 return $GLOBALS['tutor_plugin_info'];
93 }
94 }
95
96 if ( ! class_exists( 'Tutor' ) ) {
97 include_once 'classes/Tutor.php';
98 }
99
100 /**
101 * Get all helper functions/methods
102 *
103 * @return \TUTOR\Utils
104 */
105
106 if ( ! class_exists( '\TUTOR\Utils' ) ) {
107 include_once 'classes/Utils.php';
108 }
109
110 if ( ! function_exists( 'tutor_utils' ) ) {
111 /**
112 * Access tutor utils functions
113 *
114 * @since 1.0.0
115 *
116 * @return \TUTOR\Utils
117 */
118 function tutor_utils() {
119 if ( ! isset( $GLOBALS['tutor_utils_object'] ) ) {
120 // Use runtime cache.
121 $GLOBALS['tutor_utils_object'] = new \TUTOR\Utils();
122 }
123
124 return $GLOBALS['tutor_utils_object'];
125 }
126 }
127
128
129 if ( ! function_exists( 'tutils' ) ) {
130 /**
131 * Alis of tutor_utils()
132 *
133 * @since 1.3.4
134 *
135 * @return \TUTOR\Utils
136 */
137 function tutils() {
138 return tutor_utils();
139 }
140 }
141
142 /**
143 * Do some task during activation
144 *
145 * @since 1.5.2
146 */
147 register_activation_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_activate' ) );
148 register_deactivation_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_deactivation' ) );
149
150 if ( ! function_exists( 'tutor_lms' ) ) {
151 /**
152 * Run main instance of the Tutor
153 *
154 * @since 1.2.0
155 *
156 * @return null|\TUTOR\Tutor
157 */
158 function tutor_lms() {
159 return \TUTOR\Tutor::instance();
160 }
161 }
162
163 if ( ! function_exists( 'str_contains' ) ) {
164 /**
165 * String helper for str contains
166 *
167 * @since 1.0.0
168 *
169 * @param string $haystack haystack.
170 * @param string $needle needle.
171 *
172 * @return bool
173 */
174 function str_contains( string $haystack, string $needle ) {
175 return empty( $needle ) || strpos( $haystack, $needle ) !== false;
176 }
177 }
178
179 $GLOBALS['tutor'] = tutor_lms();
180