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