PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 2.0.2
Tutor LMS – eLearning and online course solution v2.0.2
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 4 years ago classes 4 years ago includes 4 years ago languages 4 years ago restapi 4 years ago templates 4 years ago views 4 years ago readme.txt 4 years ago tutor.php 4 years ago
tutor.php
154 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.0.2
8 Author URI: https://themeum.com
9 Requires at least: 4.5
10 Tested up to: 5.9
11 License: GPLv2 or later
12 Text Domain: tutor
13 */
14
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit;
17 }
18
19 /**
20 * Defined the tutor main file
21 */
22 define( 'TUTOR_VERSION', '2.0.2' );
23 define( 'TUTOR_FILE', __FILE__ );
24
25 /**
26 * Load tutor text domain for translation
27 */
28 add_action(
29 'init',
30 function () {
31 load_plugin_textdomain( 'tutor', false, basename( dirname( __FILE__ ) ) . '/languages' );
32 }
33 );
34
35 /**
36 * Tutor Helper function
37 *
38 * @since v.1.0.0
39 */
40
41 if ( ! function_exists( 'tutor' ) ) {
42 /**
43 * Tutor variable and declarations
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 = $home_url . '/' . substr($_SERVER['REQUEST_URI'], strlen($base_path));
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 );
81
82 $GLOBALS['tutor_plugin_info'] = (object) $info;
83 return $GLOBALS['tutor_plugin_info'];
84 }
85 }
86
87 if ( ! class_exists( 'Tutor' ) ) {
88 include_once 'classes/Tutor.php';
89 }
90
91 /**
92 * Get all helper functions/methods
93 *
94 * @return \TUTOR\Utils
95 */
96
97 if ( ! class_exists( '\TUTOR\Utils' ) ) {
98 include_once 'classes/Utils.php';
99 }
100
101 if ( ! function_exists( 'tutor_utils' ) ) {
102 function tutor_utils() {
103 if ( ! isset( $GLOBALS['tutor_utils_object'] ) ) {
104 // Use runtime cache
105 $GLOBALS['tutor_utils_object'] = new \TUTOR\Utils();
106 }
107
108 return $GLOBALS['tutor_utils_object'];
109 }
110 }
111
112 /**
113 * Alis of tutor_utils()
114 *
115 * @return \TUTOR\Utils
116 *
117 * @since v.1.3.4
118 */
119 if ( ! function_exists( 'tutils' ) ) {
120 function tutils() {
121 return tutor_utils();
122 }
123 }
124
125 /**
126 * Do some task during activation
127 *
128 * @moved here from Tutor Class
129 * @since v.1.5.2
130 */
131 register_activation_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_activate' ) );
132 register_deactivation_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_deactivation' ) );
133
134 /**
135 * Run main instance of the Tutor
136 *
137 * @return null|\TUTOR\Tutor
138 *
139 * @since v.1.2.0
140 */
141 if ( ! function_exists( 'tutor_lms' ) ) {
142 function tutor_lms() {
143 return \TUTOR\Tutor::instance();
144 }
145 }
146
147 if ( ! function_exists( 'str_contains' ) ) {
148 function str_contains( string $haystack, string $needle ) {
149 return empty( $needle ) || strpos( $haystack, $needle ) !== false;
150 }
151 }
152 // add_action('plugins_loaded', 'tutor_lms');.
153 $GLOBALS['tutor'] = tutor_lms();
154