PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.1.0
Tutor LMS – eLearning and online course solution v3.1.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 1 year ago cache 2 years ago classes 1 year ago ecommerce 1 year ago helpers 1 year ago includes 1 year ago languages 1 year ago models 1 year ago restapi 1 year ago templates 1 year ago traits 1 year ago tutor-droip 1 year 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: 3.1.0
8 * Author URI: https://themeum.com
9 * Requires PHP: 7.4
10 * Requires at least: 5.3
11 * Tested up to: 6.7
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', '3.1.0' );
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 'bundle_post_type' => apply_filters( 'tutor_bundle_post_type', 'course-bundle' ),
77 'lesson_post_type' => apply_filters( 'tutor_lesson_post_type', 'lesson' ),
78 'instructor_role' => apply_filters( 'tutor_instructor_role', 'tutor_instructor' ),
79 'instructor_role_name' => apply_filters( 'tutor_instructor_role_name', __( 'Tutor Instructor', 'tutor' ) ),
80 'template_path' => apply_filters( 'tutor_template_path', 'tutor/' ),
81 'has_pro' => apply_filters( 'tutor_has_pro', $has_pro ),
82 // @since v2.0.6.
83 'topics_post_type' => apply_filters( 'tutor_topics_post_type', 'topics' ),
84 'announcement_post_type' => apply_filters( 'tutor_announcement_post_type', 'tutor_announcements' ),
85 'assignment_post_type' => apply_filters( 'tutor_assignment_post_type', 'tutor_assignments' ),
86 'enrollment_post_type' => apply_filters( 'tutor_enrollment_post_type', 'tutor_enrolled' ),
87 'quiz_post_type' => apply_filters( 'tutor_quiz_post_type', 'tutor_quiz' ),
88 'zoom_post_type' => apply_filters( 'tutor_zoom_meeting_post_type', 'tutor_zoom_meeting' ),
89 'meet_post_type' => apply_filters( 'tutor_google_meeting_post_type', 'tutor-google-meet' ),
90 );
91
92 $GLOBALS['tutor_plugin_info'] = (object) $info;
93 return $GLOBALS['tutor_plugin_info'];
94 }
95 }
96
97 if ( ! class_exists( 'Tutor' ) ) {
98 include_once 'classes/Tutor.php';
99 }
100
101 /**
102 * Get all helper functions/methods
103 *
104 * @return \TUTOR\Utils
105 */
106
107 if ( ! class_exists( '\TUTOR\Utils' ) ) {
108 include_once 'classes/Utils.php';
109 }
110
111 if ( ! function_exists( 'tutor_utils' ) ) {
112 /**
113 * Access tutor utils functions
114 *
115 * @since 1.0.0
116 *
117 * @return \TUTOR\Utils
118 */
119 function tutor_utils() {
120 if ( ! isset( $GLOBALS['tutor_utils_object'] ) ) {
121 // Use runtime cache.
122 $GLOBALS['tutor_utils_object'] = new \TUTOR\Utils();
123 }
124
125 return $GLOBALS['tutor_utils_object'];
126 }
127 }
128
129
130 if ( ! function_exists( 'tutils' ) ) {
131 /**
132 * Alis of tutor_utils()
133 *
134 * @since 1.3.4
135 *
136 * @return \TUTOR\Utils
137 */
138 function tutils() {
139 return tutor_utils();
140 }
141 }
142
143 /**
144 * Do some task during activation
145 *
146 * @since 1.5.2
147 *
148 * @since 2.6.2
149 *
150 * Uninstall hook registered
151 */
152 register_activation_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_activate' ) );
153 register_deactivation_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_deactivation' ) );
154 register_uninstall_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_uninstall' ) );
155
156 if ( ! function_exists( 'tutor_lms' ) ) {
157 /**
158 * Run main instance of the Tutor
159 *
160 * @since 1.2.0
161 *
162 * @return null|\TUTOR\Tutor
163 */
164 function tutor_lms() {
165 return \TUTOR\Tutor::instance();
166 }
167 }
168
169 if ( ! function_exists( 'str_contains' ) ) {
170 /**
171 * String helper for str contains
172 *
173 * @since 1.0.0
174 *
175 * @param string $haystack haystack.
176 * @param string $needle needle.
177 *
178 * @return bool
179 */
180 function str_contains( string $haystack, string $needle ) {
181 return empty( $needle ) || strpos( $haystack, $needle ) !== false;
182 }
183 }
184
185 $GLOBALS['tutor'] = tutor_lms();