Block::ticket_availability( array $tickets = array() )

Check for ticket availability


Parameters

$tickets

(array) (Optional) (IDs of tickets to check)

Default value: array()


Top ↑

Return

(void)


Top ↑

Source

File: src/Tickets/Blocks/Tickets/Block.php

	public function ticket_availability( $tickets = [] ) {

		$response = [ 'html' => '' ];
		$tickets  = tribe_get_request_var( 'tickets', [] );

		// Bail if we receive no tickets.
		if ( empty( $tickets ) ) {
			wp_send_json_error( $response );
		}

		/** @var Tickets_Handler $tickets_handler */
		$tickets_handler = tribe( 'tickets.handler' );

		/** @var Template $tickets_editor */
		$tickets_editor = tribe( 'tickets.editor.template' );

		// Parse the tickets and create the array for the response.
		foreach ( $tickets as $ticket_id ) {
			$ticket = Tickets::load_ticket_object( $ticket_id );

			if (
				! $ticket instanceof Ticket_Object
				|| empty( $ticket->ID )
			) {
				continue;
			}

			$available     = $ticket->available();
			$max_at_a_time = $tickets_handler->get_ticket_max_purchase( $ticket->ID );

			$response['tickets'][ $ticket_id ]['available']    = $available;
			$response['tickets'][ $ticket_id ]['max_purchase'] = $max_at_a_time;

			// If there are no more available we will send the template part HTML to update the DOM.
			if ( 0 === $available ) {
				$response['tickets'][ $ticket_id ]['unavailable_html'] = $tickets_editor->template( 'blocks/tickets/quantity-unavailable', $ticket, false );
			}
		}

		wp_send_json_success( $response );
	}

Top ↑

Changelog

Changelog
Version Description
4.9 Introduced.