Tribe__Events__JSON_LD__Venue::get_data( int|WP_Post|null $post = null, array $args = array('context' => false) )

Fetches the JSON-LD data for this type of object


Parameters

$post

(int|WP_Post|null) (Optional) The post/venue

Default value: null

$args

(array) (Optional)

Default value: array('context' => false)


Top ↑

Return

(array)


Top ↑

Source

File: src/Tribe/JSON_LD/Venue.php

	public function get_data( $post = null, $args = array( 'context' => false ) ) {
		$data = parent::get_data( $post, $args );

		// If we have an Empty data we just skip
		if ( empty( $data ) ) {
			return array();
		}

		// Fetch first key
		$post_id = key( $data );

		// Fetch first Value
		$data = reset( $data );

		$data->address = array();

		$data->address['@type'] = 'PostalAddress';
		$data->address['streetAddress'] = tribe_get_address( $post_id );
		$data->address['addressLocality'] = tribe_get_city( $post_id );
		$data->address['addressRegion'] = tribe_get_region( $post_id );
		$data->address['postalCode'] = tribe_get_zip( $post_id );
		$data->address['addressCountry'] = tribe_get_country( $post_id );

		// Filter empty entries and convert to object
		$data->address = (object) array_filter( $data->address );

		$geo = tribe_get_coordinates( $post_id );
		if ( ! empty( $geo['lat'] ) && ! empty( $geo['lng'] ) ) {
			$data->geo = (object) array(
				'@type' => 'GeoCoordinates',
				'latitude' => $geo['lat'],
				'longitude' => $geo['lng'],
			);
		}

		$data->telephone = tribe_get_phone( $post_id );
		$data->sameAs = tribe_get_venue_website_url( $post_id );

		$data = $this->apply_object_data_filter( $data, $args, $post );
		return array( $post_id => $data );
	}