PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 2.2.3
Tutor LMS – eLearning and online course solution v2.2.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 2 years ago cache 2 years ago classes 2 years ago helpers 3 years ago includes 3 years ago languages 2 years ago models 3 years ago restapi 3 years ago templates 2 years ago vendor 2 years ago views 2 years ago readme.txt 2 years ago tutor.php 2 years ago
tutor.php
178 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.2.3
8 * Author URI: https://themeum.com
9 * Requires at least: 5.3
10 * Tested up to: 6.2
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.2.3' );
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 );
88
89 $GLOBALS['tutor_plugin_info'] = (object) $info;
90 return $GLOBALS['tutor_plugin_info'];
91 }
92 }
93
94 if ( ! class_exists( 'Tutor' ) ) {
95 include_once 'classes/Tutor.php';
96 }
97
98 /**
99 * Get all helper functions/methods
100 *
101 * @return \TUTOR\Utils
102 */
103
104 if ( ! class_exists( '\TUTOR\Utils' ) ) {
105 include_once 'classes/Utils.php';
106 }
107
108 if ( ! function_exists( 'tutor_utils' ) ) {
109 /**
110 * Access tutor utils functions
111 *
112 * @since 1.0.0
113 *
114 * @return \TUTOR\Utils
115 */
116 function tutor_utils() {
117 if ( ! isset( $GLOBALS['tutor_utils_object'] ) ) {
118 // Use runtime cache.
119 $GLOBALS['tutor_utils_object'] = new \TUTOR\Utils();
120 }
121
122 return $GLOBALS['tutor_utils_object'];
123 }
124 }
125
126
127 if ( ! function_exists( 'tutils' ) ) {
128 /**
129 * Alis of tutor_utils()
130 *
131 * @since 1.3.4
132 *
133 * @return \TUTOR\Utils
134 */
135 function tutils() {
136 return tutor_utils();
137 }
138 }
139
140 /**
141 * Do some task during activation
142 *
143 * @since 1.5.2
144 */
145 register_activation_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_activate' ) );
146 register_deactivation_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_deactivation' ) );
147
148 if ( ! function_exists( 'tutor_lms' ) ) {
149 /**
150 * Run main instance of the Tutor
151 *
152 * @since 1.2.0
153 *
154 * @return null|\TUTOR\Tutor
155 */
156 function tutor_lms() {
157 return \TUTOR\Tutor::instance();
158 }
159 }
160
161 if ( ! function_exists( 'str_contains' ) ) {
162 /**
163 * String helper for str contains
164 *
165 * @since 1.0.0
166 *
167 * @param string $haystack haystack.
168 * @param string $needle needle.
169 *
170 * @return bool
171 */
172 function str_contains( string $haystack, string $needle ) {
173 return empty( $needle ) || strpos( $haystack, $needle ) !== false;
174 }
175 }
176
177 $GLOBALS['tutor'] = tutor_lms();
178