PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 2.7.3
Tutor LMS – eLearning and online course solution v2.7.3
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 1 year ago cache 2 years ago classes 1 year ago helpers 2 years ago includes 2 years ago languages 1 year ago models 1 year ago restapi 2 years ago templates 1 year ago traits 2 years ago vendor 1 year ago views 1 year ago readme.txt 1 year ago tutor.php 1 year ago
tutor.php
185 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.7.3
8 * Author URI: https://themeum.com
9 * Requires PHP: 7.4
10 * Requires at least: 5.3
11 * Tested up to: 6.5
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 __DIR__ . '/vendor/autoload.php';
23
24 /**
25 * Defined the tutor main file
26 */
27 define( 'TUTOR_VERSION', '2.7.3' );
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 * @since 2.6.2
148 *
149 * Uninstall hook registered
150 */
151 register_activation_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_activate' ) );
152 register_deactivation_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_deactivation' ) );
153 register_uninstall_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_uninstall' ) );
154
155 if ( ! function_exists( 'tutor_lms' ) ) {
156 /**
157 * Run main instance of the Tutor
158 *
159 * @since 1.2.0
160 *
161 * @return null|\TUTOR\Tutor
162 */
163 function tutor_lms() {
164 return \TUTOR\Tutor::instance();
165 }
166 }
167
168 if ( ! function_exists( 'str_contains' ) ) {
169 /**
170 * String helper for str contains
171 *
172 * @since 1.0.0
173 *
174 * @param string $haystack haystack.
175 * @param string $needle needle.
176 *
177 * @return bool
178 */
179 function str_contains( string $haystack, string $needle ) {
180 return empty( $needle ) || strpos( $haystack, $needle ) !== false;
181 }
182 }
183
184 $GLOBALS['tutor'] = tutor_lms();
185