PluginProbe
Responsive Menu – Create Mobile-Friendly Menu / 3.1.1
Responsive Menu – Create Mobile-Friendly Menu v3.1.1
4.7.3 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.10 4.1.11 4.1.12 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 All 90 releases
responsive-menu / migration.php

migration.php in Responsive Menu – Create Mobile-Friendly Menu 3.1.1, at migration.php

50 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 add_action('init', function() {
4
5 $options_manager = get_responsive_menu_service('option_manager');
6 $plugin_data = get_file_data(dirname(__FILE__) . '/responsive-menu.php', ['version']);
7 $new_version = $plugin_data[0];
8
9 // TODO: Remove and just use new version number in April 2018
10 $old_version = get_option('responsive_menu_version') ? get_option('responsive_menu_version') : get_option('RMVer');
11
12 $migration = new ResponsiveMenu\Database\Migration(
13 $options_manager,
14 $old_version,
15 $new_version,
16 get_responsive_menu_default_options()
17 );
18
19 if($migration->needsTable()) {
20 require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
21 global $wpdb;
22 maybe_create_table(
23 $wpdb->prefix . 'responsive_menu',
24 "CREATE TABLE " . $wpdb->prefix . "responsive_menu (
25 name varchar(50) NOT NULL,
26 value varchar(5000) DEFAULT NULL,
27 PRIMARY KEY (name)
28 ) " . $wpdb->get_charset_collate() . ";"
29 );
30 }
31
32 if($migration->needsUpdate()) {
33
34 $migration->addNewOptions();
35 $migration->tidyUpOptions();
36
37 if($migration->getMigrationClasses()):
38 $updated_options = $options_manager->all();
39 foreach($migration->getMigrationClasses() as $migration)
40 $migrated_options = $migration->migrate($updated_options);
41 $options_manager->updateOptions($migrated_options->toArray());
42 endif;
43
44 $task = new ResponsiveMenu\Tasks\UpdateOptionsTask();
45 $task->run($options_manager->all(), get_responsive_menu_service('view'));
46 update_option('responsive_menu_version', $new_version);
47
48 }
49
50 });