PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.2.23
Adminify – White Label, Admin Menu Editor, Login Customizer v4.2.23
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 / Admin / Options / RollbackVersion.php

RollbackVersion.php in Adminify – White Label, Admin Menu Editor, Login Customizer 4.2.23, at Inc/Admin/Options/RollbackVersion.php

227 lines 8.2 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\Admin\Options;
4
5 use PXLBSAdminify\Inc\Utils;
6 use PXLBSAdminify\Inc\Classes\Helper;
7 use PXLBSAdminify\Inc\Classes\Adminify_Rollback;
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 die;
11 } // Cannot access directly.
12
13 class RollbackVersion {
14
15 private $prefix;
16 public function __construct() {
17 if ( is_multisite() && ! is_network_admin() ) {
18 return; // only display to network admin if multisite is enbaled
19 }
20
21 $this->prefix = '_adminify_rollback';
22 $this->pxlbsadminify_rollback_options();
23
24 add_action( 'admin_enqueue_scripts', [ $this, 'pxlbsadminify_rollback_enqueue_scripts' ] );
25 }
26
27 public function get_defaults() {
28 return [
29 'adminify_rollback' => '',
30 ];
31 }
32
33 /**
34 * Scripts/Styles
35 */
36 public function pxlbsadminify_rollback_enqueue_scripts() {
37 global $pagenow;
38
39 // Load Scripts/Styles only WP Adminify Custom CSS/JS Page
40 // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- read-only check, no state change.
41 if ( ! empty( $_GET['page'] ) && ( 'admin.php' === $pagenow ) && ( 'adminify-rollback-version' === sanitize_key( wp_unslash( $_GET['page'] ) ) ) ) {
42 $this->version_rollback_admin_script();
43 }
44 }
45
46
47 public function version_rollback_admin_script() {
48 $rollback_custom_admin_styles = '.adminify-rollback-version .adminify-container{ max-width:60%; margin:0 auto;} .adminify-rollback-version .adminify-header{display:none ;}
49 .adminify-rollback-version .adminify-header-inner{padding:0;}.adminify-rollback-version .adminify-field-subheading{font-size:20px; padding-left:0;} .adminify-rollback-version .adminify-nav,.adminify-rollback-version .adminify-search,.adminify-rollback-version .adminify-footer,.adminify-rollback-version .adminify-reset-all,.adminify-rollback-version .adminify-expand-all,.adminify-rollback-version .adminify-header-left,.adminify-rollback-version .adminify-reset-section,.adminify-rollback-version .adminify-nav-background{display: none !important;}.adminify-rollback-version .adminify-nav-normal + .adminify-content{margin-left: 0;}
50 /* If needed for white top-bar */
51 .adminify-rollback-version .adminify-header-inner {
52 background-color: #fafafa !important;
53 border-bottom: 1px solid #f5f5f5;
54 }
55 .adminify-rollback-version .adminify-field-callback a.dashicons{ width: inherit; }';
56
57 echo '<style>' . esc_html( wp_strip_all_tags( $rollback_custom_admin_styles ) ) . '</style>';
58 }
59
60
61 public static function pxlbsadminify_rollback_contents() { ?>
62
63 <div class="border border-muted">
64
65 <h3><?php echo esc_html__( 'Rollback Version', 'adminify' ); ?></h3>
66
67
68 <?php
69 $rollback_html = '<select class="wp-adminify-rollback-select">';
70 $ger_versions = Adminify_Rollback::get_instance();
71
72 foreach ( $ger_versions->get_rollback_versions() as $version ) {
73 $rollback_html .= "<option value='{$version}'>$version</option>";
74 }
75 $rollback_html .= '</select>';
76 echo Utils::kses_custom( $rollback_html ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- kses_custom() is a wp_kses() wrapper; output already escaped.
77
78 echo sprintf(
79 wp_kses_post( '<a data-placeholder-text="%1$s" href="#" data-placeholder-url="%2$s" class="button button-primary wp-adminify-btn wp-adminify-rollback-button dashicons dashicons-update-alt ml-2">%3$s</a>' ),
80 esc_html__( 'Reinstall', 'adminify' ) . ' v' . esc_html( PXLBSADMINIFY_VER ),
81 esc_url( wp_nonce_url( admin_url( 'admin-post.php?action=pxlbsadminify_rollback_version&version=VERSION' ), 'pxlbsadminify_rollback_version' ) ),
82 esc_html__( 'Reinstall', 'adminify' )
83 );
84 ?>
85 <p class="wp-adminify-roll-desc pt-2 has-text-danger">
86 <?php echo esc_html__( 'Warning: Please backup your database before making the rollback.', 'adminify' ); ?>
87 </p>
88 </div>
89
90
91 <div class="wp-adminify--popup-area is-flex is-align-items-center is-justify-content-center">
92 <div class="wp-adminify--popup-container has-text-centered">
93 <div class="wp-adminify--popup-container_inner pt-6 pb-6">
94 <div class="wp-adminify-popup-header">
95 <?php echo esc_html__( 'Rollback to Previous Version', 'adminify' ); ?>
96 </div>
97 <div class="wp-adminify-dialog-message wp-adminify-dialog-confirm-message slow">
98 <?php echo esc_html__( 'Are you sure you want to reinstall previous version?', 'adminify' ); ?>
99 </div>
100 <div class="wp-adminify-dialog-buttons-wrapper wp-adminify-dialog-confirm-buttons-wrapper mt-5">
101 <button class="wp-adminify-dialog-button button-secondary wp-adminify-dialog-cancel wp-adminify-dialog-confirm-cancel">
102 <?php echo esc_html__( 'Cancel', 'adminify' ); ?>
103 </button>
104 <button class="wp-adminify-dialog-button button-primary wp-adminify-dialog-ok wp-adminify-dialog-confirm-ok">
105 <?php echo esc_html__( 'Continue', 'adminify' ); ?>
106 </button>
107 </div>
108 </div>
109 </div>
110 </div>
111
112
113
114
115 <?php
116 }
117
118
119 public function pxlbsadminify_rollback_fields( &$fields ) {
120 $fields[] = [
121 'type' => 'subheading',
122 'content' => Utils::help_urls(
123 __( 'Rollback to Previous Version', 'adminify' ),
124 'https://wpadminify.com/kb/version-rollback/',
125 'https://www.youtube.com/playlist?list=PLqpMw0NsHXV-EKj9Xm1DMGa6FGniHHly8',
126 'https://www.facebook.com/groups/jeweltheme',
127 \PXLBSAdminify\Inc\Admin\AdminSettings::support_url()
128 ),
129 ];
130
131 $fields[] = [
132 'type' => 'submessage',
133 'style' => 'info',
134 /* translators: %1$s: plugin name, %2$s: plugin version */
135 'content' => '<strong>' . sprintf( __( 'Experiencing an issue with %1$s <em>v%2$s</em>? Rollback to a previous version before the issue appeared.', 'adminify' ), esc_html( PXLBSADMINIFY ), esc_html( PXLBSADMINIFY_VER ) ) . '</strong>',
136 ];
137
138 $fields[] = [
139 'id' => 'adminify_rollback',
140 'type' => 'callback',
141 'function' => '\PXLBSAdminify\Inc\Admin\Options\RollbackVersion::pxlbsadminify_rollback_contents',
142 ];
143 }
144
145 public function pxlbsadminify_rollback_options() {
146 if ( ! class_exists( 'ADMINIFY' ) ) {
147 return;
148 }
149
150 // WP Adminify Custom Header & Footer Options
151 \ADMINIFY::createOptions(
152 $this->prefix,
153 [
154
155 // Framework Title
156 'framework_title' => __( 'Rollback Version <small>for Adminify</small>', 'adminify' ),
157 'framework_class' => 'adminify-rollback-version',
158
159 // menu settings
160 'menu_title' => __( 'Rollback Version', 'adminify' ),
161 'menu_slug' => 'adminify-rollback-version',
162 'menu_type' => 'submenu', // menu, submenu, options, theme, etc.
163 'menu_capability' => 'manage_options',
164 'menu_icon' => '',
165 'menu_position' => 54,
166 'menu_hidden' => false,
167 'menu_parent' => 'wp-adminify-settings',
168
169 // footer
170 'footer_text' => ' ',
171 'footer_after' => ' ',
172 'footer_credit' => ' ',
173
174 // menu extras
175 'show_bar_menu' => false,
176 'show_sub_menu' => false,
177 'show_in_network' => true,
178 'show_in_customizer' => false,
179
180 'show_search' => false,
181 'show_reset_all' => false,
182 'show_reset_section' => false,
183 'show_header' => false,
184 'show_footer' => false,
185 'show_all_options' => false,
186 'show_form_warning' => false,
187 'sticky_header' => false,
188 'save_defaults' => false,
189 'ajax_save' => false,
190
191 // admin bar menu settings
192 'admin_bar_menu_icon' => '',
193 'admin_bar_menu_priority' => 45,
194
195 // database model
196 'database' => 'network', // options, transient, theme_mod, network(multisite support)
197 'transient_time' => 0,
198
199 // typography options
200 'enqueue_webfont' => false,
201 'async_webfont' => false,
202
203 // others
204 'output_css' => false,
205
206 // theme and wrapper classname
207 'nav' => 'normal',
208 'theme' => 'dark',
209 'class' => 'wp-adminify-rollback',
210 ]
211 );
212
213 $fields = [];
214 $this->pxlbsadminify_rollback_fields( $fields );
215
216 // Rollback Section
217 \ADMINIFY::createSection(
218 $this->prefix,
219 [
220 'title' => __( 'Rollback Version', 'adminify' ),
221 'icon' => 'fas fa-layer-group',
222 'fields' => $fields,
223 ]
224 );
225 }
226 }
227