Tribe__Tickets__Tickets::get_availability_slug_by_collection( array $tickets, string $datetime = null )
Returns an availability slug based on all tickets in the provided collection
Contents
The availability slug is used for CSS class names and filter helper strings
Parameters
- $tickets
-
(array) (Required) Collection of tickets
- $datetime
-
(string) (Optional) Datetime string
Default value: null
Return
(string)
Source
File: src/Tribe/Tickets.php
public function get_availability_slug_by_collection( $tickets, $datetime = null ) {
if ( ! $tickets ) {
return;
}
if ( is_numeric( $datetime ) ) {
$timestamp = $datetime;
} elseif ( $datetime ) {
$timestamp = strtotime( $datetime );
} else {
$timestamp = current_time( 'timestamp' );
}
$collection_availability_slug = 'available';
$tickets_available = false;
$slugs = [];
foreach ( $tickets as $ticket ) {
$availability_slug = $ticket->availability_slug( $timestamp );
// if any ticket is available for this event, consider the availability slug as 'available'
if ( 'available' === $availability_slug ) {
// reset the collected slugs to "available" only
$slugs = array( 'available' );
break;
}
// track unique availability slugs
if ( ! in_array( $availability_slug, $slugs ) ) {
$slugs[] = $availability_slug;
}
}
if ( 1 === count( $slugs ) ) {
$collection_availability_slug = $slugs[0];
} else {
$collection_availability_slug = 'availability-mixed';
}
/**
* Filters the availability slug for a collection of tickets
*
* @param string Availability slug
* @param array Collection of tickets
* @param string Datetime string
*/
return apply_filters( 'event_tickets_availability_slug_by_collection', $collection_availability_slug, $tickets, $datetime );
}
Changelog
| Version | Description |
|---|---|
| 4.2 | Introduced. |