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

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