File Editor
Directories:
.. (Back)
Documentation
Endpoints
Headers
Validator
Files:
Attendee_Repository.php
Flags.php
Main.php
Messages.php
Post_Repository.php
Service_Provider.php
Settings.php
System.php
Ticket_Repository.php
Create New File
Create
Edit File: Flags.php
<?php /** * Class Tribe__Tickets__REST__V1__Flags * * @since 4.8 */ class Tribe__Tickets__REST__V1__Flags { /** * Filters posts REST response data for ticket-enabled custom post types to add ticket-related flags. * * @since 4.8 * * @param WP_REST_Response $response * @param WP_Post $post * * @return WP_REST_Response */ public function flag_ticketed_post( WP_REST_Response $response, WP_Post $post ) { $id = $post->ID; $tickets = Tribe__Tickets__Tickets::get_all_event_tickets( $id ); $response->data['ticketed'] = count( $tickets ) > 0 ? $this->extract_providers_from_tickets( $tickets ) : false; return $response; } /** * Creates a list of ticket providers for a post. * * @since 4.8 * * @param array $tickets * * @return array */ protected function extract_providers_from_tickets( array $tickets ) { $slugs = array(); /** @var Tribe__Tickets__REST__Interfaces__Post_Repository $repository */ $repository = tribe( 'tickets.rest-v1.repository' ); /** @var Tribe__Tickets__Ticket_Object $ticket */ foreach ( $tickets as $ticket ) { $slugs[] = $repository->get_provider_slug( $ticket->provider_class ); } return array_unique( array_filter( $slugs ) ); } /** * Filters events REST response data to add ticket-related flags. * * @since 4.8 * * @param array $data * @param WP_Post $event * * @return array */ public function flag_ticketed_event( array $data, WP_Post $event ) { $id = $event->ID; $data['ticketed'] = false; if ( ! in_array( $event->post_type, Tribe__Tickets__Main::instance()->post_types(), true ) ) { return $data; } $tickets = Tribe__Tickets__Tickets::get_all_event_tickets( $id ); if ( 0 < count( $tickets ) ) { $data['ticketed'] = $this->extract_providers_from_tickets( $tickets ); } return $data; } }
Save Changes
Rename File
Rename