Skip to content

Instantly share code, notes, and snippets.

@cliffordp
Created January 17, 2017 23:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save cliffordp/f2cf6b3ce9f33c7ff17988c824d67e21 to your computer and use it in GitHub Desktop.
Save cliffordp/f2cf6b3ce9f33c7ff17988c824d67e21 to your computer and use it in GitHub Desktop.
The Events Calendar - Event Aggregator: hijack event time zone before import
<?php
/**
* The Events Calendar - Event Aggregator: hijack event time zone before import
* Must change code to accomodate your desired time zone
*
* From https://gist.github.com/cliffordp/f2cf6b3ce9f33c7ff17988c824d67e21
*
* By Nico 2017-01-12
*/
function tribe_ea_modify_timezone ( $event, $record ) {
// if event has a timezone just return the event
if ( $event['EventTimeZone'] ) return $event;
// if it has no timezone let's convert the event to the site timezone
$tz = new DateTimeZone('America/Denver');
$start_date = new DateTime($event['EventStartDate'] . ' ' . $event['EventStartHour'] . ':' . $event['EventStartMinute'] . ':00', new DateTimeZone('UTC'));
$start_date->setTimezone($tz);
$event['EventStartDate'] = $start_date->format('Y-m-d');
$event['EventStartHour'] = $start_date->format('H');
$event['EventStartMinute'] = $start_date->format('i');
$end_date = new DateTime($event['EventEndDate'] . ' ' . $event['EventEndHour'] . ':' . $event['EventEndMinute'] . ':00', new DateTimeZone('UTC'));
$end_date->setTimezone($tz);
$event['EventEndDate'] = $end_date->format('Y-m-d');
$event['EventEndHour'] = $end_date->format('H');
$event['EventEndMinute'] = $end_date->format('i');
return $event;
}
add_filter( 'tribe_aggregator_before_save_event', 'tribe_ea_modify_timezone', 10, 2);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment