PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.2.20
Adminify – White Label, Admin Menu Editor, Login Customizer v4.2.20
4.3.1 4.3.0 4.2.26 4.2.25 4.2.24 4.2.23 4.2.22 4.2.21 4.2.20 4.2.19 4.2.18 4.2.17 4.2.16 4.2.15 4.2.14 4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 4.1.17 All 164 releases
adminify / Inc / Classes / Wizard / Setup_Wizard.php

Setup_Wizard.php in Adminify – White Label, Admin Menu Editor, Login Customizer 4.2.20, at Inc/Classes/Wizard/Setup_Wizard.php

86 lines 2.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace PXLBSAdminify\Inc\Classes\Wizard;
4
5 // no direct access allowed
6 if (!defined('ABSPATH')) {
7 exit;
8 }
9
10 class Setup_Wizard
11 {
12
13 public function __construct()
14 {
15 add_action('admin_init', [$this, 'redirects']);
16 add_action('admin_menu', [$this, 'setup_wizar_menu'], 11);
17 add_action('admin_init', [$this, 'setup_wizard_run']);
18 }
19
20 public function setup_wizard_run()
21 {
22 new Adminify_Setup_Wizard();
23 }
24
25
26 public function setup_wizar_menu()
27 {
28 $submenu_position = apply_filters('pxlbsadminify_submenu_position', 1);
29 add_submenu_page(
30 'wp-adminify-settings',
31 esc_html__( 'Setup Wizard by Adminify', 'adminify' ),
32 esc_html__( 'Setup Wizard', 'adminify' ),
33 apply_filters( 'pxlbsadminify_capability', 'manage_options' ),
34 'wp-adminify-setup-wizard',
35 // The wizard renders (and exits) from setup_wizard() on admin_init, so this
36 // callback never runs. It must still be a callable: WP only links the submenu
37 // to admin.php?page=<slug> when get_plugin_page_hook() finds a registered action.
38 '__return_null',
39 $submenu_position
40 );
41
42 add_dashboard_page('', '', 'manage_options', 'wp-adminify-setup-wizard', '');
43 }
44
45
46 public function redirects()
47 {
48 // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only check, no state change.
49 if (!current_user_can('administrator') || is_network_admin() || isset($_GET['activate-multi']) || !current_user_can('manage_options')) {
50 return;
51 }
52
53 // pxlbsadminify_setup_wizard_ran = 0 => not started
54 // pxlbsadminify_setup_wizard_ran = 1 => finished
55 // pxlbsadminify_setup_wizard_ran = 2 => started
56 // pxlbsadminify_setup_wizard_ran = 3 => canceled
57
58 $is_ran = get_option('pxlbsadminify_setup_wizard_ran', '0');
59
60 if (is_admin()) {
61 global $pagenow;
62 // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only check, no state change.
63 if (($pagenow == 'index.php' && !isset($_GET['page'])) || ($pagenow == 'admin.php' && (isset($_GET['page']) && sanitize_text_field(wp_unslash($_GET['page'])) == 'wp-adminify-settings'))) {
64 if ($is_ran == '2') {
65 update_option('pxlbsadminify_setup_wizard_ran', '3');
66 }
67 }
68
69 // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only check, no state change.
70 if ((($pagenow == 'index.php' && !isset($_GET['page'])) || ($pagenow == 'admin.php' && (isset($_GET['page']) && sanitize_text_field(wp_unslash($_GET['page'])) == 'wp-adminify-settings'))) && isset($_GET['adminify_setup_done_config']) && sanitize_text_field(wp_unslash($_GET['adminify_setup_done_config'])) == '1') {
71 if ($is_ran == '2') {
72 update_option('pxlbsadminify_setup_wizard_ran', '1');
73 }
74 }
75 }
76
77 if ($is_ran != '1' && $is_ran != '2' && $is_ran != '3') {
78 update_option('pxlbsadminify_setup_wizard_ran', '2');
79 wp_safe_redirect(admin_url('index.php?page=wp-adminify-setup-wizard'));
80 exit;
81 } elseif ($is_ran == '2') {
82 new \PXLBSAdminify\Inc\Classes\Wizard\Adminify_Setup_Wizard();
83 }
84 }
85 }
86