PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.1.10
Adminify – White Label, Admin Menu Editor, Login Customizer v4.1.10
4.3.2 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 All 165 releases
adminify / Inc / Classes / Upgrades / upgrade-4.0.php

upgrade-4.0.php in Adminify – White Label, Admin Menu Editor, Login Customizer 4.1.10, at Inc/Classes/Upgrades/upgrade-4.0.php

367 lines 18.9 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\Classes;
4
5 class Upgrade_v4_0 extends Upgrade{
6 private static $instance = null;
7
8 public function __construct() {
9 add_action('admin_notices', array($this, 'check_for_upgrade'));
10 add_action('wp_ajax_jltwp_adminify_upgrade_v4_0_db', array($this, 'upgrade_database'));
11 }
12
13
14
15 public function check_for_upgrade(){
16 $current_version = get_option($this->option_name);
17
18 if ($current_version !== WP_ADMINIFY_VER) {
19 $this->show_admin_notice();
20 }
21 }
22
23 public function show_admin_notice(){ ?>
24 <div class="hide-notice--ignored notice notice-warning">
25 <p><?php _e('A database upgrade is required due to the latest plugin version. Please click the button below to upgrade.', 'adminify'); ?></p>
26 <p>
27 <button id="upgrade-db" class="button button-primary"><?php _e('Update Adminify Database', 'adminify'); ?></button>
28 <a href="https://wpadminify.com/what-is-new-in-wp-adminify-v4-0/" target="_blank" class="button button-secondary"><?php _e('Learn more about updates', 'adminify'); ?></a>
29 </p>
30 </div>
31
32 <script type="text/javascript">
33 jQuery(document).ready(function($) {
34 $('#upgrade-db').on('click', function(e) {
35 e.preventDefault();
36
37 var $button = $(this);
38 $button.prop('disabled', true);
39
40 $.post(ajaxurl, {
41 action: 'jltwp_adminify_upgrade_v4_0_db',
42 security: '<?php echo wp_create_nonce('jltwp_adminify_upgrade_v4_0_db_nonce'); ?>'
43 }, function(response) {
44 if (response.success) {
45 location.reload();
46 } else {
47 alert(response.data);
48 $button.prop('disabled', false);
49 }
50 });
51 });
52 });
53 </script>
54 <?php
55 }
56
57 public function upgrade_database()
58 {
59 check_ajax_referer('jltwp_adminify_upgrade_v4_0_db_nonce', 'security');
60
61 // Security check - only administrators can run database upgrades
62 if (!current_user_can('manage_options')) {
63 wp_send_json_error(array('message' => __('You do not have permission to perform this action.', 'adminify')));
64 }
65
66 $old_data = get_option('_wpadminify_backup', []);
67
68 // Google Page Speed Backup
69 if ( !empty($old_data['google_pagepseed_api_key']) ) {
70 update_option('google_pagepseed_api_key', $old_data['google_pagepseed_api_key']);
71 }
72
73 $this->update_data_migration($old_data);
74
75 // Plugin Version Update
76 update_option($this->option_name, WP_ADMINIFY_VER);
77
78 wp_send_json_success();
79 }
80
81 public static function get_instance()
82 {
83 if (!isset(self::$instance) && !(self::$instance instanceof Upgrade_v4_0)) {
84 self::$instance = new Upgrade_v4_0();
85 }
86
87 return self::$instance;
88 }
89
90 public function update_data_migration($jltwp_adminify_old_data) {
91
92
93 function jltwp_adminify_upgrade_v4_data($old_data) {
94
95 $data = [];
96
97 // MOVE KEYS
98 $move_array_keys = [
99 // Customize
100 'admin_bar_settings.admin_bar_comments' => 'admin_bar_notif',
101 'admin_bar_settings.admin_bar_search' => 'admin_bar_search',
102
103 'admin_bar_settings.admin_bar_dark_light_btn' => 'admin_bar_dark_light_btn',
104 'adminify_theme_custom_colors.--adminify-btn-bg' => 'adminify_theme_custom_colors.--adminify-primary',
105 'admin_general_bg' => 'body_fields.admin_general_bg',
106 'admin_general_bg_gradient' => 'body_fields.admin_general_bg_gradient',
107 'admin_general_bg_image' => 'body_fields.admin_general_bg_image',
108 'admin_bar_mode' => 'light_dark_mode.admin_ui_mode',
109 'admin_bar_logo_type' => 'light_dark_mode.admin_ui_logo_type',
110 // 'admin_bar_light_mode' => 'light_dark_mode.admin_ui_light_mode',
111
112 // light logo
113 'admin_bar_light_mode.admin_bar_light_logo_text' => 'light_dark_mode.admin_ui_light_mode.admin_ui_light_logo_text',
114 'admin_bar_light_mode.admin_bar_light_logo_text_typo' => 'light_dark_mode.admin_ui_light_mode.admin_ui_light_logo_text_typo',
115 'admin_bar_light_mode.admin_bar_light_logo' => 'light_dark_mode.admin_ui_light_mode.admin_ui_light_logo',
116 'admin_bar_light_mode.mini_admin_bar_light_logo' => 'light_dark_mode.admin_ui_light_mode.mini_admin_ui_light_logo',
117 'admin_bar_light_mode.light_logo_size' => 'light_dark_mode.admin_ui_light_mode.light_logo_size',
118 // Dark logo
119 'admin_bar_dark_mode.admin_bar_dark_logo_text' => 'light_dark_mode.admin_ui_dark_mode.admin_ui_dark_logo_text',
120 'admin_bar_dark_mode.admin_bar_dark_logo_text_typo' => 'light_dark_mode.admin_ui_dark_mode.admin_ui_dark_logo_text_typo',
121 'admin_bar_dark_mode.admin_bar_dark_logo' => 'light_dark_mode.admin_ui_dark_mode.admin_ui_dark_logo',
122 'admin_bar_dark_mode.mini_admin_bar_dark_logo' => 'light_dark_mode.admin_ui_dark_mode.mini_admin_ui_dark_logo',
123 'admin_bar_dark_mode.dark_logo_size' => 'light_dark_mode.admin_ui_dark_mode.dark_logo_size',
124
125 'enable_schedule_dark_mode' => 'light_dark_mode.admin_ui_dark_mode.schedule_dark_mode.enable_schedule_dark_mode',
126 'schedule_dark_mode_type' => 'light_dark_mode.admin_ui_dark_mode.schedule_dark_mode.schedule_dark_mode_type',
127 'schedule_dark_mode_start_time' => 'light_dark_mode.admin_ui_dark_mode.schedule_dark_mode.schedule_dark_mode_start_time',
128 'schedule_dark_mode_end_time' => 'light_dark_mode.admin_ui_dark_mode.schedule_dark_mode.schedule_dark_mode_end_time',
129
130 // Admin Menu
131 'menu_layout_settings.user_info' => 'menu_layout_settings.user_info_fields.enable_user_info',
132 'menu_layout_settings.user_info_content' => 'menu_layout_settings.user_info_fields.user_info_content',
133 'menu_layout_settings.user_info_avatar' => 'menu_layout_settings.user_info_fields.user_info_avatar',
134
135 // Productivity
136 'folders' => 'folders.enable_folders',
137 'folders_enable_for' => 'folders.enable_for',
138 'folders_media' => 'folders.media',
139
140 'admin_columns' => 'custom_admin_columns.enable',
141 'quick_menu' => 'quick_menus_data.quick_menus_enable',
142 'quick_menus' => 'quick_menus_data.quick_menus',
143
144 'post_types_order' => 'post_types_order.enable_pto', //TODO: Spacial Check
145 'pto_taxonomies' => 'post_types_order.pto_taxonomies', //TODO: Spacial Check
146 'pto_posts' => 'post_types_order.pto_posts', //TODO: Spacial Check
147 'pto_media' => 'post_types_order.pto_media', //TODO: Spacial Check
148
149 'post_duplicator' => 'post_duplicator.enable_post_duplicator', //TODO: Spacial Check
150 'adminify_clone_post_posts' => 'post_duplicator.post_types', //TODO: Spacial Check
151 'adminify_clone_post_taxonomies' => 'post_duplicator.taxonomies', //TODO: Spacial Check TODO: not exits v_3
152
153 'post_page_column_thumb_image' => 'custom_admin_columns.post_page_column_thumb_image',
154
155 'sidebar_widgets_list' => 'remove_widgets.sidebar_widgets_list',
156 'sidebar_widgets_disable_gutenberg_editor' => 'remove_widgets.disable_gutenberg_editor',
157 'dashboard_widgets_list' => 'remove_widgets.dashboard_widgets_list',
158
159 // Security
160 'disable_comments' => 'disable_comments.enable_disable_comments',
161 'disable_comments_post_types' => 'disable_comments.post_types',
162
163 'enable_custom_gravatar' => 'custom_gravatar.enable',
164 'custom_gravatar_image' => 'custom_gravatar.image',
165
166 'redirect_urls' => 'redirect_urls_fields.enable_redirect_urls',
167
168 'remove_feed' => 'security_feed',
169 'redirect_feed' => 'security_feed',
170
171 // Performance
172 'control_heartbeat_api' => 'heartbeat_api.enabled',
173
174 // Code Snippets
175 'custom_css' => 'backend.custom_css',
176 'custom_js' => 'backend.custom_js',
177
178 // White Label
179 'admin_bar_settings.admin_bar_howdy_text' => 'white_label.wordpress.change_howdy_text',
180 'footer_text' => 'white_label.wordpress.footer_text',
181
182 'jltwp_adminify_wl_plugin_logo' => 'white_label.adminify.plugin_logo',
183 'jltwp_adminify_wl_plugin_name' => 'white_label.adminify.plugin_name',
184 'jltwp_adminify_wl_plugin_desc' => 'white_label.adminify.plugin_desc',
185 'jltwp_adminify_wl_plugin_author_name' => 'white_label.adminify.author_name',
186 'jltwp_adminify_wl_plugin_menu_label' => 'white_label.adminify.menu_label',
187 'jltwp_adminify_wl_plugin_url' => 'white_label.adminify.plugin_url',
188 'jltwp_adminify_wl_plugin_row_links' => 'white_label.adminify.row_links',
189
190 ];
191 // $data = \WPAdminify\Inc\Utils::moveNestedKeys($old_data, $move_array_keys);
192
193
194 //REPLACE KEYS
195 $replace_array_keys = [
196 // Productivity
197 'admin_notices' => 'hide_notices',
198 ];
199 // $data = \WPAdminify\Inc\Utils::replace_keys($data, $replace_array_keys);
200
201 // CHECKBOX KEYS
202 $checkbox_keys = [
203 //Productivity
204 'post_thumb_column' => 'custom_admin_columns.columns_data.post_thumb_column',
205 'post_page_id_column' => 'custom_admin_columns.columns_data.post_page_id_column',
206 'comment_id_column' => 'custom_admin_columns.columns_data.comment_id_column',
207 'taxonomy_id_column' => 'custom_admin_columns.columns_data.taxonomy_id_column',
208
209 'remove_welcome_panel' => 'other_notices.welcome_panel',
210 'remove_php_update_required_nag' => 'other_notices.php_nag',
211 'core_update_notice' => 'other_notices.core_update_notice',
212 'plugin_update_notice' => 'other_notices.plugin_update_notice',
213 'theme_update_notice' => 'other_notices.theme_update_notice',
214
215 // Security
216 'disable_xmlrpc' => 'security_head.security_head_data.xmlrpc',
217 'generator_wp_version' => 'security_head.security_head_data.generator_wp_version',
218 'remove_rsd' => 'security_head.security_head_data.rsd',
219 'remove_shortlink' => 'security_head.security_head_data.shortlink',
220 'remove_canonical' => 'security_head.security_head_data.canonical',
221 'self_ping' => 'security_head.security_head_data.self_ping',
222
223 'remove_wc_generator' => 'security_head.security_head_data.wc_generator',
224 'remove_revslider_generator' => 'security_head.security_head_data.revslider_generator',
225 'remove_visual_composer_generator' => 'security_head.security_head_data.js_composer_generator',
226 'remove_wpml_generator' => 'security_head.security_head_data.wpml_generator',
227 'remove_yoast_generator' => 'security_head.security_head_data.yoast_generator',
228
229 'disable_rest_api' => 'security_rest_api.security_rest_api_data.rest_api',
230 'remove_powered' => 'security_rest_api.security_rest_api_data.powered',
231 'remove_api_head' => 'security_rest_api.security_rest_api_data.api_head',
232 'remove_api_server' => 'security_rest_api.security_rest_aremove_gutenberg_scriptspi_data.api_server',
233 'remove_powered' => 'security_head.security_rest_api_data.powered',
234
235 'disable_comments_admin_bar' => 'disable_comments.apply_for.admin_bar',
236 'disable_comments_menu_redirect' => 'disable_comments.apply_for.menu_redirect',
237 'disable_comments_admin_menu' => 'disable_comments.apply_for.admin_menu',
238 'disable_comments_discussion_menu' => 'disable_comments.apply_for.discussion_menu',
239 'disable_comments_close_front' => 'disable_comments.apply_for.close_front',
240 'remove_comments_notes' => 'disable_comments.apply_for.comments_notes',
241 'disable_comments_url_field' => 'disable_comments.apply_for.comments_url_field',
242 'disable_comments_replace_author_link' => 'disable_comments.apply_for.replace_author_link',
243 'disable_comments_replace_comment_link' => 'disable_comments.apply_for.replace_comment_link',
244 'remove_recentcomments' => 'disable_comments.apply_for.recentcomments',
245 'disable_comments_hide_existing' => 'disable_comments.apply_for.hide_existing',
246
247 'display_last_modified_date' => 'post_archives.post_archives_data.last_modified_date',
248 'remove_capital_p_dangit' => 'post_archives.post_archives_data.capital_p_dangit',
249 'remove_archives_date' => 'post_archives.post_archives_data.archives_date',
250 'remove_archives_author' => 'post_archives.post_archives_data.archives_author',
251 'remove_archives_tag' => 'post_archives.post_archives_data.archives_tag',
252 'remove_archives_category' => 'post_archives.post_archives_data.archives_category',
253 'remove_archives_postformat' => 'post_archives.post_archives_data.archives_postformat',
254 'remove_archives_search' => 'post_archives.post_archives_data.archives_search',
255
256 // Performance
257 'remove_dashicons' => 'performance.performance_data.dashicons',
258 'remove_version_strings' => 'performance.performance_data.version_strings',
259 'gravatar_query_strings' => 'performance.performance_data.gravatar_query_strings',
260 'remove_emoji' => 'performance.performance_data.emoji',
261 'remove_jquery_migrate' => 'performance.performance_data.jquery_migrate_front',
262 'defer_parsing_js_footer' => 'performance.performance_data.defer_parsing_js_footer',
263 'cache_gzip_compression' => 'performance.performance_data.cache_gzip_compression',
264
265 'remove_gutenberg_scripts' => 'disable_gutenberg.disable_for.remove_gutenberg_scripts',
266
267 // White Label
268 // WordPress
269 // 'admin_footer_ip_address' => 'white_label.wordpress.admin_footer.ip_address',
270 // 'admin_footer_php_version' => 'white_label.wordpress.admin_footer.php_version',
271 // 'admin_footer_wp_version' => 'white_label.wordpress.admin_footer.wp_version',
272 // 'admin_footer_memory_usage' => 'white_label.wordpress.admin_footer.memory_usage',
273 // 'admin_footer_memory_limit' => 'white_label.wordpress.admin_footer.memory_limit',
274 // 'admin_footer_memory_available' => 'white_label.wordpress.admin_footer.memory_available',
275 // // Adminify
276 // 'jltwp_adminify_remove_action_links' => 'white_label.adminify.remove_action_links',
277 // 'jltwp_adminify_wl_plugin_tab_system_info' => 'white_label.adminify.tab_system_info',
278 // 'jltwp_adminify_wl_plugin_option' => 'white_label.adminify.plugin_option',
279 ];
280 // $data = \WPAdminify\Inc\Utils::checkboxes($data, $checkbox_keys);
281
282
283 // REMOVE KEYSmoveNestedKeys
284 $removeArrayKeys = [
285 // Admin Menu
286 'menu_layout_settings.legacy_menu',
287 'menu_layout_settings.show_bloglink',
288
289 //Productivity
290 'remove_try_gutenberg_panel',
291
292 //Security
293 'rest_api',
294 'disable_comments_dashboard_widget',
295 'remove_comments_author_link',
296 'remove_comments_autolinking',
297 'disable_comments_media',
298
299 // Performance
300 'remove_pingback',
301 'remove_link_url',
302 'remove_wlwmanifest',
303 'remove_dns_prefetch',
304 'remove_prev_next',
305 'remove_http_shortlink',
306
307 'thumbnails_rss_feed',
308 'remove_image_link',
309 'remove_attachment',
310 'disable_pdf_thumbnail',
311
312 'login_customizer',
313 'menu_editor',
314 'dashboard_widgets',
315 'pagespeed_insights',
316 'custom_css_js',
317 'activity_logs',
318 'notification_bar',
319 'server_info',
320 'sidebar_generator',
321 'admin_general_bg_color',
322 'admin_general_bg_slideshow',
323 'admin_general_bg_video_type',
324 'admin_general_bg_video_self_hosted',
325 'admin_general_bg_video_youtube',
326 'admin_general_bg_video_loop',
327 'admin_general_bg_video_poster',
328 'admin_glass_effect',
329 'admin_danger_button_color',
330 // Google pagespeed
331 'google_pagepseed_user_roles',
332 'google_pagepseed_api_key'
333 ];
334 // $data = \WPAdminify\Inc\Utils::removeKeys($data, $removeArrayKeys);
335
336
337
338 $data = \WPAdminify\Inc\Utils::replace_keys($old_data, $replace_array_keys);
339 $data = \WPAdminify\Inc\Utils::removeKeys($data, $removeArrayKeys);
340 $data = \WPAdminify\Inc\Utils::moveNestedKeys($data, $move_array_keys);
341 $data = \WPAdminify\Inc\Utils::checkboxes($data, $checkbox_keys);
342
343 // Redirect Urls data Mirgrate
344 $redirect_urls_data = get_option('_wpadminify_redirect_urls');
345
346 $migrate_redirect_data = [
347 'redirect_urls_fields' => [
348 'enable_redirect_urls' => !empty($data['redirect_urls_fields']['enable_redirect_urls']) ? 1 : 0,
349 'redirect_urls_options' => [
350 'redirect_urls_tabs' => !empty($redirect_urls_data['redirect_urls_options']) ? $redirect_urls_data['redirect_urls_options'] : []
351 ]
352 ]
353 ];
354
355 return array_merge($data, $migrate_redirect_data) ;
356 }
357
358
359 $new_data = jltwp_adminify_upgrade_v4_data($jltwp_adminify_old_data);
360 update_option( '_wpadminify', $new_data );
361
362
363 }
364 }
365
366 Upgrade_v4_0::get_instance();
367