PluginProbe
Adminify – White Label, Admin Menu Editor, Login Customizer / 4.0.4.6
Adminify – White Label, Admin Menu Editor, Login Customizer v4.0.4.6
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.0.4.6, at Inc/Classes/Upgrades/upgrade-4.0.php

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