PluginProbe
Tutor LMS – eLearning and online course solution / 2.2.2
Tutor LMS – eLearning and online course solution v2.2.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 | classes/Tools.php +125 -9 1.0.32.2.2 View file →
@@ -1,26 +1,142 @@
1 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 + */
2 10
3 11 namespace TUTOR;
4 12
13 +if ( ! defined( 'ABSPATH' ) ) {
14 + exit;
15 +}
5 16
17 +use TUTOR\Input;
18 +
19 +/**
20 + * Tools class
21 + *
22 + * @since 1.0.0
23 + */
6 24 class Tools {
7 25
26 + /**
27 + * Register hooks
28 + *
29 + * @since 1.0.0
30 + */
8 31 public function __construct() {
9 - add_action('tutor_once_in_day_run_schedule', array($this, 'delete_auto_draft_posts'));
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' ) );
10 38 }
11 39
12 40 /**
13 - * Delete draft question schedule basis
41 + * Re-Generate Tutor Missing Pages
42 + *
43 + * @since 1.4.3
14 44 */
15 - public function delete_auto_draft_posts() {
16 - global $wpdb;
45 + public function regenerate_tutor_pages() {
46 + tutor_utils()->checking_nonce();
17 47
18 - $draft_questions_ids = $wpdb->get_col("SELECT ID from {$wpdb->posts} WHERE post_type = 'tutor_question' AND post_status = 'auto-draft' ");
19 - if (is_array($draft_questions_ids) && count($draft_questions_ids)){
20 - foreach ($draft_questions_ids as $draft_questions_id){
21 - wp_delete_post($draft_questions_id, true);
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 ( $option_key === 'tutor_login_page' ) {
58 + $page_content = '[tutor_login]';
22 59 }
60 +
61 + if ( ! $visible ) {
62 + $page_arg = array(
63 + 'ID' => $page_id,
64 + 'post_title' => $page_title,
65 + 'post_content' => $page_content,
66 + 'post_type' => 'page',
67 + 'post_status' => 'publish',
68 + );
69 + $page_id = wp_insert_post( $page_arg );
70 + update_tutor_option( $option_key, $page_id );
71 + }
23 72 }
24 73 }
25 74
26 -}
75 + /**
76 + * Handler after tutor option save
77 + *
78 + * @since 1.0.0
79 + *
80 + * @return void
81 + */
82 + public function tutor_option_save_after() {
83 + $maintenance_mode = (bool) get_tutor_option( 'enable_tutor_maintenance_mode' );
84 + if ( $maintenance_mode ) {
85 + tutor_maintenance_mode( true );
86 + } else {
87 + tutor_maintenance_mode();
88 + }
89 + }
90 +
91 + /**
92 + * Check if maintenance mode
93 + *
94 + * @since 1.0.0
95 + *
96 + * @return void
97 + */
98 + public function check_if_maintenance() {
99 + if ( ! is_admin() && ! $this->is_wplogin() ) {
100 + $maintenance_mode = (bool) get_tutor_option( 'enable_tutor_maintenance_mode' );
101 + if ( false === $maintenance_mode || current_user_can( 'administrator' ) ) {
102 + return;
103 + }
104 + header( 'Retry-After: 600' );
105 + include tutor()->path . 'views/maintenance.php';
106 + die();
107 + }
108 + }
109 +
110 + /**
111 + * Check if wp_login
112 + *
113 + * @since 1.0.0
114 + *
115 + * @return boolean
116 + */
117 + public function is_wplogin() {
118 + $abs_path = str_replace( array( '\\', '/' ), DIRECTORY_SEPARATOR, ABSPATH );
119 + return (
120 + ( in_array( $abs_path . 'wp-login.php', get_included_files() ) || in_array( $abs_path . 'wp-register.php', get_included_files() ) )
121 + ||
122 + ( isset( $GLOBALS['pagenow'] ) && 'wp-login.php' === $GLOBALS['pagenow'] )
123 + ||
124 + ( isset( $_SERVER['PHP_SELF'] ) && '/wp-login.php' === $_SERVER['PHP_SELF'] )
125 + );
126 + }
127 +
128 + /**
129 + * Redirect to setup wizard page if any one click on the menu from tools page
130 + *
131 + * @since 1.5.7
132 + *
133 + * @return void
134 + */
135 + public function redirect_to_wizard_page() {
136 + if ( Input::get( 'page' ) === 'tutor-tools' && Input::get( 'sub_page' ) === 'tutor-setup' ) {
137 + wp_safe_redirect( admin_url( 'admin.php?page=tutor-setup' ) );
138 + exit();
139 + }
140 + }
141 +
142 +}