PluginProbe
Tutor LMS – eLearning and online course solution / 3.9.2
Tutor LMS – eLearning and online course solution v3.9.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
tutor / classes / Tools.php

Tools.php in Tutor LMS – eLearning and online course solution 3.9.2, at classes/Tools.php

147 lines 3.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Options for TutorLMS
4 *
5 * @package Tutor\Tools
6 * @author Themeum <support@themeum.com>
7 * @link https://themeum.com
8 * @since 1.0.0
9 */
10
11 namespace TUTOR;
12
13 if ( ! defined( 'ABSPATH' ) ) {
14 exit;
15 }
16
17 use TUTOR\Input;
18
19 /**
20 * Tools class
21 *
22 * @since 1.0.0
23 */
24 class Tools {
25
26 /**
27 * Register hooks
28 *
29 * @since 1.0.0
30 */
31 public function __construct() {
32 add_action( 'tutor_action_regenerate_tutor_pages', array( $this, 'regenerate_tutor_pages' ) );
33
34 add_action( 'tutor_option_save_after', array( $this, 'tutor_option_save_after' ) );
35 add_action( 'init', array( $this, 'check_if_maintenance' ) );
36
37 add_action( 'admin_init', array( $this, 'redirect_to_wizard_page' ) );
38 }
39
40 /**
41 * Re-Generate Tutor Missing Pages
42 *
43 * @since 1.4.3
44 */
45 public function regenerate_tutor_pages() {
46 tutor_utils()->checking_nonce();
47
48 $tutor_pages = tutor_utils()->tutor_pages();
49
50 foreach ( $tutor_pages as $page ) {
51 $visible = tutor_utils()->array_get( 'page_visible', $page );
52 $page_title = tutor_utils()->array_get( 'page_name', $page );
53 $option_key = tutor_utils()->array_get( 'option_key', $page );
54 $page_id = tutor_utils()->array_get( 'page_id', $page );
55
56 $page_content = '';
57 if ( 'tutor_login_page' === $option_key ) {
58 $page_content = '[tutor_login]';
59 }
60
61 if ( 'membership_pricing_page_id' === $option_key ) {
62 $page_content = '[tutor_membership_pricing]';
63 }
64
65 if ( ! $visible ) {
66 $page_arg = array(
67 'ID' => $page_id,
68 'post_title' => $page_title,
69 'post_content' => $page_content,
70 'post_type' => 'page',
71 'post_status' => 'publish',
72 );
73 $page_id = wp_insert_post( $page_arg );
74 update_tutor_option( $option_key, $page_id );
75 }
76 }
77 }
78
79 /**
80 * Handler after tutor option save
81 *
82 * @since 1.0.0
83 *
84 * @return void
85 */
86 public function tutor_option_save_after() {
87 $maintenance_mode = (bool) get_tutor_option( 'enable_tutor_maintenance_mode' );
88 if ( $maintenance_mode ) {
89 tutor_maintenance_mode( true );
90 } else {
91 tutor_maintenance_mode();
92 }
93 }
94
95 /**
96 * Check if maintenance mode
97 *
98 * @since 1.0.0
99 *
100 * @return void
101 */
102 public function check_if_maintenance() {
103 if ( ! is_admin() && ! $this->is_wplogin() ) {
104 $maintenance_mode = (bool) get_tutor_option( 'enable_tutor_maintenance_mode' );
105 if ( false === $maintenance_mode || current_user_can( 'administrator' ) ) {
106 return;
107 }
108 header( 'Retry-After: 600' );
109 include tutor()->path . 'views/maintenance.php';
110 die();
111 }
112 }
113
114 /**
115 * Check if wp_login
116 *
117 * @since 1.0.0
118 *
119 * @return boolean
120 */
121 public function is_wplogin() {
122 $abs_path = str_replace( array( '\\', '/' ), DIRECTORY_SEPARATOR, ABSPATH );
123 return (
124 ( in_array( $abs_path . 'wp-login.php', get_included_files() ) || in_array( $abs_path . 'wp-register.php', get_included_files() ) )
125 ||
126 ( isset( $GLOBALS['pagenow'] ) && 'wp-login.php' === $GLOBALS['pagenow'] )
127 ||
128 ( isset( $_SERVER['PHP_SELF'] ) && '/wp-login.php' === $_SERVER['PHP_SELF'] )
129 );
130 }
131
132 /**
133 * Redirect to setup wizard page if any one click on the menu from tools page
134 *
135 * @since 1.5.7
136 *
137 * @return void
138 */
139 public function redirect_to_wizard_page() {
140 if ( Input::get( 'page' ) === 'tutor-tools' && Input::get( 'sub_page' ) === 'tutor-setup' ) {
141 wp_safe_redirect( admin_url( 'admin.php?page=tutor-setup' ) );
142 exit();
143 }
144 }
145
146 }
147