/** * Upgrade routine. Hooked onto admin_init * *@since 1.1 *@access private *@ignore */ function eventorganiser_upgradecheck() { global $wpdb, $EO_Errors; $eventorganiser_db_version = defined('EVENT_ORGANISER_VER') ? EVENT_ORGANISER_VER : false; $installed_ver = get_option('eventorganiser_version'); if (empty($installed_ver)) { //This is a fresh install. Add current database version add_option('eventorganiser_version', $eventorganiser_db_version); //But a bug in 1.5 means that it could be that they first installed in 1.5 (as no db version was added) //So set to 1.5. Fresh installs will have to go through the 1.6 (and above) update, but this is ok. $installed_ver = '1.5'; eventorganiser_install(); } //If this is an old version, perform some updates. if (!empty($installed_ver) && $installed_ver != $eventorganiser_db_version) { if (version_compare($installed_ver, '1.3', '<')) { wp_die('You cannot upgrade to this version from 1.3 or before. Please upgrade to 1.5.7 first.'); } if (version_compare($installed_ver, '1.4', '<')) { eventorganiser_140_update(); } if (version_compare($installed_ver, '1.5', '<')) { eventorganiser_150_update(); } if (version_compare($installed_ver, '1.6', '<')) { //Remove columns: $columns = $wpdb->get_col("DESC {$wpdb->eo_events}", 0); $remove_columns = array('Venue', 'event_schedule', 'event_schedule_meta', 'event_frequency', 'reoccurrence_start', 'reoccurrence_end'); $delete_columns = array_intersect($remove_columns, $columns); if (!empty($delete_columns)) { $sql = $wpdb->query("ALTER TABLE {$wpdb->eo_events} DROP COLUMN " . implode(', DROP COLUMN ', $delete_columns) . ';'); } eventorganiser_install(); } if (version_compare($installed_ver, '1.6.2', '<')) { $options = get_option('eventorganiser_options'); if (!empty($options['eventtag'])) { $options['supports'][] = 'eventtag'; update_option('eventorganiser_options', $options); } } if (version_compare($installed_ver, '2.7.3', '<')) { //Ensure event_allday columns is removed. This causes problems on Windows servers. $columns = $wpdb->get_col("DESC {$wpdb->eo_events}", 0); $remove_columns = array('event_allday'); $delete_columns = array_intersect($remove_columns, $columns); if (!empty($delete_columns)) { $sql = $wpdb->query("ALTER TABLE {$wpdb->eo_events} DROP COLUMN " . implode(', DROP COLUMN ', $delete_columns) . ';'); } flush_rewrite_rules(); } if (version_compare($installed_ver, '2.12.0', '<') && version_compare(get_bloginfo('version'), '4.2-alpha-31007-src', '>=')) { //If the user is upgrading from an earlier version (without the split term fix) //and they have already upgraded to WP 4.2.0, then run the update routine eventorganiser_021200_update(); } update_option('eventorganiser_version', $eventorganiser_db_version); //Run upgrade checks add_action('admin_notices', 'eventorganiser_db_checks', 0); } //eventorganiser_021200_update(); }
/** * Upgrade routine. Hooked onto admin_init * *@since 1.1 *@access private *@ignore */ function eventorganiser_upgradecheck() { global $wpdb, $EO_Errors; $eventorganiser_db_version = defined('EVENT_ORGANISER_VER') ? EVENT_ORGANISER_VER : false; $installed_ver = get_option('eventorganiser_version'); if (empty($installed_ver)) { //This is a fresh install. Add current database version add_option('eventorganiser_version', $eventorganiser_db_version); //But a bug in 1.5 means that it could be that they first installed in 1.5 (as no db version was added) //So set to 1.5. Fresh installs will have to go through the 1.6 (and above) update, but this is ok. $installed_ver = '1.5'; } //If this is an old version, perform some updates. if (!empty($installed_ver) && $installed_ver != $eventorganiser_db_version) { if ($installed_ver < '1.3') { wp_die('You cannot upgrade to this version from 1.3 or before. Please upgrade to 1.5.7 first.'); } if ($installed_ver < '1.4') { eventorganiser_140_update(); } if ($installed_ver < '1.5') { eventorganiser_150_update(); } if ($installed_ver < '1.6') { //Remove columns: $columns = $wpdb->get_col("DESC {$wpdb->eo_events}", 0); $remove_columns = array('Venue', 'event_schedule', 'event_schedule_meta', 'event_frequency', 'reoccurrence_start', 'reoccurrence_end'); $delete_columns = array_intersect($remove_columns, $columns); if (!empty($delete_columns)) { $sql = $wpdb->query("ALTER TABLE {$wpdb->eo_events} DROP COLUMN " . implode(', DROP COLUMN ', $delete_columns) . ';'); } eventorganiser_install(); } if ($installed_ver < '1.6.2') { $options = get_option('eventorganiser_options'); if (!empty($options['eventtag'])) { $options['supports'][] = 'eventtag'; update_option('eventorganiser_options', $options); } } if ($installed_ver < '1.7.1') { //Forgot to remove event_allday in 1.6 upgrade. This causes problems no Windows servers. $columns = $wpdb->get_col("DESC {$wpdb->eo_events}", 0); $remove_columns = array('event_allday'); if (!empty($delete_columns)) { $sql = $wpdb->query("ALTER TABLE {$wpdb->eo_events} DROP COLUMN " . implode(', DROP COLUMN ', $delete_columns) . ';'); } flush_rewrite_rules(); } update_option('eventorganiser_version', $eventorganiser_db_version); //Run upgrade checks add_action('admin_notices', 'eventorganiser_db_checks', 0); } }
function eventorganiser_upgradecheck() { global $eventorganiser_db_version, $wpdb; global $EO_Errors; $installed_ver = get_option('eventorganiser_version'); //If this is an old version, perform some updates. if (!empty($installed_ver) && $installed_ver != $eventorganiser_db_version) { if ($installed_ver < '1.1') { $query = $wpdb->prepare("SELECT* \n\t\t\t\tFROM {$wpdb->eo_events}\n\t\t\t\tWHERE {$wpdb->eo_events}.event_schedule = 'monthly'\n\t\t\t\tGROUP BY {$wpdb->eo_events}.post_id"); $results = $wpdb->get_results($query); foreach ($results as $event) { $meta = $event->event_schedule_meta; $start = new DateTime(esc_attr($event->StartDate)); $post_id = $event->post_id; $bymonthday = preg_match('/^BYMONTHDAY=(\\d{1,2})/', $meta, $matches); $byday = preg_match('/^BYDAY=(-?\\d{1,2})([a-zA-Z]{2})/', $meta, $matchesOLD); if (!($bymonthday || $byday)) { if ($meta == 'date') { $meta = 'BYMONTHDAY=' . $start->format('d'); } else { $meta = 'BYDAY=' . $meta; } $result = $wpdb->update($wpdb->eo_events, array('event_schedule_meta' => $meta), array('post_id' => $post_id)); } } } if ($installed_ver < '1.2') { $settings = get_option('eventorganiser_options'); //Add new settings $settings['url_event'] = 'events/event'; $settings['url_venue'] = 'events/venue'; $settings['url_cat'] = 'events/category'; $settings['url_tag'] = 'events/tag'; $settings['navtitle'] = __('Events', 'eventorganiser'); $settings['group_events'] = ''; $settings['feed'] = 1; $settings['eventtag'] = 1; $settings['deleteexpired'] = 0; update_option('eventorganiser_options', $settings); } if ($installed_ver < '1.2.1') { $settings = get_option('eventorganiser_options'); $settings['url_venue'] = empty($settings['url_venue']) ? 'events/venue' : $settings['url_venue']; update_option('eventorganiser_options', $settings); flush_rewrite_rules(); } if ($installed_ver < '1.3') { eventorgniaser_130_update(); } if ($installed_ver < '1.4') { eventorganiser_140_update(); } update_option('eventorganiser_version', $eventorganiser_db_version); //Run upgrade checks add_action('admin_notices', 'eventorganiser_db_checks', 0); } }