| 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 |
$old_version = get_option('responsive_menu_version') ? get_option('responsive_menu_version') : get_option('RMVer'); |
| 10 |
|
| 11 |
$migration = new ResponsiveMenu\Database\Migration( |
| 12 |
$options_manager, |
| 13 |
$old_version, |
| 14 |
$new_version, |
| 15 |
get_responsive_menu_default_options() |
| 16 |
); |
| 17 |
|
| 18 |
if($migration->needsTable()) { |
| 19 |
require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); |
| 20 |
global $wpdb; |
| 21 |
maybe_create_table( |
| 22 |
$wpdb->prefix . 'responsive_menu', |
| 23 |
"CREATE TABLE " . $wpdb->prefix . "responsive_menu ( |
| 24 |
name varchar(50) NOT NULL, |
| 25 |
value LONGTEXT DEFAULT NULL, |
| 26 |
PRIMARY KEY (name) |
| 27 |
) " . $wpdb->get_charset_collate() . ";" |
| 28 |
); |
| 29 |
} |
| 30 |
|
| 31 |
if($migration->needsUpdate()) { |
| 32 |
|
| 33 |
$migration->addNewOptions(); |
| 34 |
$migration->tidyUpOptions(); |
| 35 |
|
| 36 |
if($migration->getMigrationClasses()): |
| 37 |
$updated_options = $options_manager->all(); |
| 38 |
foreach($migration->getMigrationClasses() as $migration) |
| 39 |
$migrated_options = $migration->migrate($updated_options); |
| 40 |
$options_manager->updateOptions($migrated_options->toArray()); |
| 41 |
endif; |
| 42 |
|
| 43 |
$task = new ResponsiveMenu\Tasks\UpdateOptionsTask(); |
| 44 |
$task->run($options_manager->all(), get_responsive_menu_service('view')); |
| 45 |
update_option('responsive_menu_version', $new_version); |
| 46 |
|
| 47 |
} |
| 48 |
|
| 49 |
}); |