File: /var/www/lipovac/wp-content/plugins/the-events-calendar/src/Tribe/Importer/File_Importer_Venues.php
<?php
/**
* Class Tribe__Events__Importer__File_Importer_Venues
*/
class Tribe__Events__Importer__File_Importer_Venues extends Tribe__Events__Importer__File_Importer {
protected $required_fields = array( 'venue_name' );
protected function match_existing_post( array $record ) {
$name = $this->get_value_by_key( $record, 'venue_name' );
$id = $this->find_matching_post_id( $name, Tribe__Events__Main::VENUE_POST_TYPE );
return $id;
}
protected function update_post( $post_id, array $record ) {
$venue = $this->build_venue_array( $post_id, $record );
Tribe__Events__API::updateVenue( $post_id, $venue );
if ( $this->is_aggregator && ! empty( $this->aggregator_record ) ) {
$this->aggregator_record->meta['activity']->add( 'venue', 'updated', $post_id );
}
}
protected function create_post( array $record ) {
$post_status_setting = tribe( 'events-aggregator.settings' )->default_post_status( 'csv' );
$venue = $this->build_venue_array( false, $record );
$id = Tribe__Events__API::createVenue( $venue, $post_status_setting );
if ( $this->is_aggregator && ! empty( $this->aggregator_record ) ) {
$this->aggregator_record->meta['activity']->add( 'venue', 'created', $id );
}
return $id;
}
private function build_venue_array( $venue_id, array $record ) {
$show_map_setting = tribe( 'events-aggregator.settings' )->default_map( 'csv' );
$venue_address = trim( $this->get_value_by_key( $record, 'venue_address' ) . ' ' . $this->get_value_by_key( $record, 'venue_address2' ) );
$venue = array(
'Venue' => $this->get_value_by_key( $record, 'venue_name' ),
'Description' => $this->get_value_by_key( $record, 'venue_description' ),
'Address' => $venue_address,
'City' => $this->get_value_by_key( $record, 'venue_city' ),
'Country' => $this->get_value_by_key( $record, 'venue_country' ),
'Province' => $this->get_value_by_key( $record, 'venue_state' ),
'State' => $this->get_value_by_key( $record, 'venue_state' ),
'Zip' => $this->get_value_by_key( $record, 'venue_zip' ),
'Phone' => $this->get_value_by_key( $record, 'venue_phone' ),
'URL' => $this->get_value_by_key( $record, 'venue_url' ),
'ShowMap' => $venue_id ? get_post_meta( $venue_id, '_VenueShowMap', true ) : $show_map_setting,
'ShowMapLink' => $venue_id ? get_post_meta( $venue_id, '_VenueShowMapLink', true ) : $show_map_setting,
'FeaturedImage' => $this->get_featured_image( $venue_id, $record ),
);
if ( empty( $venue['Country'] ) ) {
$venue['Country'] = 'United States';
}
$venue = apply_filters( 'tribe_events_importer_venue_array', $venue, $record, $venue_id, $this );
return $venue;
}
}