/** * Fetches the JSON-LD data for this type of object * * @param int|WP_Post|null $post The post/venue * @param array $args * @return array */ 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['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); return array($post_id => $data); }
/** * Address Test * * Returns true if any of the following exist: address, city, state/province (region), country or zip * * @param int $postId Can supply either event id or venue id, if none specified, current post is used * * @return bool True if any part of an address exists */ function tribe_address_exists($postId = null) { if (tribe_get_address($postId) || tribe_get_city($postId) || tribe_get_region($postId) || tribe_get_country($postId) || tribe_get_zip($postId) || tribe_is_venue_overwrite($postId) && tribe_get_coordinates($postId)) { return true; } else { return false; } }