Block::ticket_availability( array $tickets = array() )
Check for ticket availability
Contents
Parameters
- $tickets
-
(array) (Optional) (IDs of tickets to check)
Default value: array()
Return
(void)
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 );
}
Changelog
| Version | Description |
|---|---|
| 4.9 | Introduced. |