/** * Updates the next batch of non-timezone ready events. * * @param int $batch_size (defaults to -1 meaning "update all") */ public function process($batch_size = -1) { $site_timezone = Tribe__Events__Timezones::wp_timezone_string(); foreach ($this->get_ids($batch_size) as $event_id) { $local_start_time = tribe_get_start_date($event_id, true, Tribe__Events__Date_Utils::DBDATETIMEFORMAT); $utc_start_time = Tribe__Events__Timezones::to_utc($local_start_time, $site_timezone); $local_end_time = tribe_get_end_date($event_id, true, Tribe__Events__Date_Utils::DBDATETIMEFORMAT); $utc_end_time = Tribe__Events__Timezones::to_utc($local_end_time, $site_timezone); // The abbreviation needs to be calculated per event as it can vary according to the actual date $site_timezone_abbr = Tribe__Events__Timezones::wp_timezone_abbr($local_start_time); update_post_meta($event_id, '_EventTimezone', $site_timezone); update_post_meta($event_id, '_EventTimezoneAbbr', $site_timezone_abbr); update_post_meta($event_id, '_EventStartDateUTC', $utc_start_time); update_post_meta($event_id, '_EventEndDateUTC', $utc_end_time); } }