Tribe__Events__Aggregator__API__Import::translate_json_to_event( object $json )
Translates event JSON to the-events-calendar Event array format
Contents
Parameters
- $json
-
(object) (Required) Event data in Event Aggregator format
Return
(array)
Source
File: src/Tribe/Aggregator/API/Import.php
public function translate_json_to_event( $json ) {
if (
empty( $json->title )
|| empty( $json->start_date )
|| empty( $json->start_hour )
|| empty( $json->start_minute )
|| empty( $json->end_date )
|| empty( $json->end_hour )
|| empty( $json->end_minute )
) {
return tribe_error( 'core:aggregator:invalid-event-json' );
}
$event = array();
$event['post_type'] = Tribe__Events__Main::POSTTYPE;
$event['post_status'] = tribe( 'events-aggregator.settings' )->default_post_status( $json->origin );
// translate json key/value pairs to event array key/value pairs
foreach ( get_object_vars( $json ) as $key => $value ) {
// venues and organizers are a bit more complex. We'll handle those later
if ( 'venue' === $key || 'organizer' === $key ) {
continue;
}
if ( isset( $this->event_field_map[ $key ] ) ) {
$key = $this->event_field_map[ $key ];
}
$event[ $key ] = $value;
}
if ( ! empty( $json->venue ) ) {
$event['Venue'] = array();
if ( ! is_array( $json->venue ) ) {
$json->venue = array( $json->venue );
}
foreach ( $json->venue as $venue ) {
$venue_data = array();
if ( empty( $venue->venue ) ) {
continue;
}
foreach ( get_object_vars( $venue ) as $key => $value ) {
if ( isset( $this->venue_field_map[ $key ] ) ) {
$key = $this->venue_field_map[ $key ];
}
$venue_data[ $key ] = $value;
}
$event['Venue'][] = $venue_data;
}
}
if ( ! empty( $json->organizer ) ) {
$event['Organizer'] = array();
if ( ! is_array( $json->organizer ) ) {
$json->organizer = array( $json->organizer );
}
foreach ( $json->organizer as $organizer ) {
$organizer_data = array();
if ( empty( $organizer->organizer ) ) {
continue;
}
foreach ( get_object_vars( $organizer ) as $key => $value ) {
if ( isset( $this->organizer_field_map[ $key ] ) ) {
$key = $this->organizer_field_map[ $key ];
}
$organizer_data[ $key ] = $value;
}
$event['Organizer'][] = $organizer_data;
}
}
$show_map_setting = tribe( 'events-aggregator.settings' )->default_map( $json->origin );
$event['EventShowMap'] = $show_map_setting;
$event['EventShowMapLink'] = $show_map_setting;
return $event;
}