PluginProbe
Tutor LMS – eLearning and online course solution / 3.4.2
Tutor LMS – eLearning and online course solution v3.4.2
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 4.0.2 4.0.1 4.0.0 3.9.15 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 All 191 releases
← All changes | tutor.php +115 -18 trunk3.4.2 View file →
@@ -1,15 +1,15 @@
1 1 <?php
2 2 /**
3 3 * Plugin Name: Tutor LMS
4 4 * Plugin URI: https://tutorlms.com
5 - * Description: Build and manage professional online courses with unlimited lessons, a flexible quiz engine, and a complete student learning experience. No coding needed.
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 6 * Author: Themeum
7 - * Version: 4.0.7
7 + * Version: 3.4.2
8 8 * Author URI: https://themeum.com
9 9 * Requires PHP: 7.4
10 10 * Requires at least: 5.3
11 - * Tested up to: 7.0
11 + * Tested up to: 6.7
12 12 * License: GPLv2 or later
13 13 * Text Domain: tutor
14 14 *
15 15 * @package Tutor
@@ -14,30 +14,127 @@
14 14 *
15 15 * @package Tutor
16 16 */
17 17
18 -use TUTOR\Tutor;
18 +if ( ! defined( 'ABSPATH' ) ) {
19 + exit;
20 +}
19 21
20 -defined( 'ABSPATH' ) || exit;
21 -
22 22 require_once __DIR__ . '/vendor/autoload.php';
23 23
24 24 /**
25 25 * Constants for tutor plugin.
26 - *
27 - * @since 1.0.0
28 26 */
29 -define( 'TUTOR_VERSION', '4.0.7' );
27 +define( 'TUTOR_VERSION', '3.4.2' );
30 28 define( 'TUTOR_FILE', __FILE__ );
31 -define( 'TUTOR_ENV', 'PROD' ); // DEV || PROD.
32 29
33 30 /**
34 - * Load text domain for translations.
31 + * Load tutor text domain for translation
32 + */
33 +add_action( 'init', fn () => load_plugin_textdomain( 'tutor', false, basename( dirname( __FILE__ ) ) . '/languages' ) );
34 +
35 +if ( ! function_exists( 'tutor' ) ) {
36 + /**
37 + * Tutor helper function.
38 + *
39 + * @since 1.0.0
40 + *
41 + * @return object
42 + */
43 + function tutor() {
44 + if ( isset( $GLOBALS['tutor_plugin_info'] ) ) {
45 + return $GLOBALS['tutor_plugin_info'];
46 + }
47 +
48 + $path = plugin_dir_path( TUTOR_FILE );
49 + $has_pro = defined( 'TUTOR_PRO_VERSION' );
50 +
51 + // Prepare the basepath.
52 + $home_url = get_home_url();
53 + $parsed = parse_url( $home_url );
54 + $base_path = ( is_array( $parsed ) && isset( $parsed['path'] ) ) ? $parsed['path'] : '/';
55 + $base_path = rtrim( $base_path, '/' ) . '/';
56 + // Get current URL.
57 + $current_url = trailingslashit( $home_url ) . substr( $_SERVER['REQUEST_URI'], strlen( $base_path ) );//phpcs:ignore
58 +
59 + $info = array(
60 + 'path' => $path,
61 + 'url' => plugin_dir_url( TUTOR_FILE ),
62 + 'icon_dir' => plugin_dir_url( TUTOR_FILE ) . 'assets/images/images-v2/icons/',
63 + 'v2_img_dir' => plugin_dir_url( TUTOR_FILE ) . 'assets/images/images-v2/',
64 + 'current_url' => $current_url,
65 + 'basename' => plugin_basename( TUTOR_FILE ),
66 + 'basepath' => $base_path,
67 + 'version' => TUTOR_VERSION,
68 + 'nonce_action' => 'tutor_nonce_action',
69 + 'nonce' => '_tutor_nonce',
70 + 'course_post_type' => apply_filters( 'tutor_course_post_type', 'courses' ),
71 + 'bundle_post_type' => apply_filters( 'tutor_bundle_post_type', 'course-bundle' ),
72 + 'lesson_post_type' => apply_filters( 'tutor_lesson_post_type', 'lesson' ),
73 + 'instructor_role' => apply_filters( 'tutor_instructor_role', 'tutor_instructor' ),
74 + 'template_path' => apply_filters( 'tutor_template_path', 'tutor/' ),
75 + 'has_pro' => apply_filters( 'tutor_has_pro', $has_pro ),
76 + // @since v2.0.6.
77 + 'topics_post_type' => apply_filters( 'tutor_topics_post_type', 'topics' ),
78 + 'announcement_post_type' => apply_filters( 'tutor_announcement_post_type', 'tutor_announcements' ),
79 + 'assignment_post_type' => apply_filters( 'tutor_assignment_post_type', 'tutor_assignments' ),
80 + 'enrollment_post_type' => apply_filters( 'tutor_enrollment_post_type', 'tutor_enrolled' ),
81 + 'quiz_post_type' => apply_filters( 'tutor_quiz_post_type', 'tutor_quiz' ),
82 + 'zoom_post_type' => apply_filters( 'tutor_zoom_meeting_post_type', 'tutor_zoom_meeting' ),
83 + 'meet_post_type' => apply_filters( 'tutor_google_meeting_post_type', 'tutor-google-meet' ),
84 + );
85 +
86 + $GLOBALS['tutor_plugin_info'] = (object) $info;
87 + return $GLOBALS['tutor_plugin_info'];
88 + }
89 +}
90 +
91 +if ( ! class_exists( 'Tutor' ) ) {
92 + include_once 'classes/Tutor.php';
93 +}
94 +
95 +/**
96 + * Get all helper functions/methods
35 97 *
36 - * @since 1.0.0
98 + * @return \TUTOR\Utils
37 99 */
38 -add_action( 'init', fn () => load_plugin_textdomain( 'tutor', false, basename( __DIR__ ) . '/languages' ) );
39 100
101 +if ( ! class_exists( '\TUTOR\Utils' ) ) {
102 + include_once 'classes/Utils.php';
103 +}
104 +
105 +if ( ! function_exists( 'tutor_utils' ) ) {
106 + /**
107 + * Access tutor utils functions
108 + *
109 + * @since 1.0.0
110 + *
111 + * @return \TUTOR\Utils
112 + */
113 + function tutor_utils() {
114 + if ( ! isset( $GLOBALS['tutor_utils_object'] ) ) {
115 + // Use runtime cache.
116 + $GLOBALS['tutor_utils_object'] = new \TUTOR\Utils();
117 + }
118 +
119 + return $GLOBALS['tutor_utils_object'];
120 + }
121 +}
122 +
123 +
124 +if ( ! function_exists( 'tutils' ) ) {
125 + /**
126 + * Alias of tutor_utils()
127 + *
128 + * @since 1.3.4
129 + *
130 + * @return \TUTOR\Utils
131 + */
132 + function tutils() {
133 + return tutor_utils();
134 + }
135 +}
136 +
40 137 /**
41 138 * Do some task during activation
42 139 *
43 140 * @since 1.5.2
@@ -42,11 +139,11 @@
42 139 *
43 140 * @since 1.5.2
44 141 * @since 2.6.2 Uninstall hook registered
45 142 */
46 -register_activation_hook( TUTOR_FILE, array( Tutor::class, 'tutor_activate' ) );
47 -register_deactivation_hook( TUTOR_FILE, array( Tutor::class, 'tutor_deactivation' ) );
48 -register_uninstall_hook( TUTOR_FILE, array( Tutor::class, 'tutor_uninstall' ) );
143 +register_activation_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_activate' ) );
144 +register_deactivation_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_deactivation' ) );
145 +register_uninstall_hook( TUTOR_FILE, array( '\TUTOR\Tutor', 'tutor_uninstall' ) );
49 146
50 147 if ( ! function_exists( 'tutor_lms' ) ) {
51 148 /**
52 149 * Run main instance of the Tutor
@@ -52,12 +149,12 @@
52 149 * Run main instance of the Tutor
53 150 *
54 151 * @since 1.2.0
55 152 *
56 - * @return Tutor
153 + * @return null|\TUTOR\Tutor
57 154 */
58 155 function tutor_lms() {
59 - return Tutor::get_instance();
156 + return \TUTOR\Tutor::instance();
60 157 }
61 158 }
62 159
63 160 $GLOBALS['tutor'] = tutor_lms();