Tribe__Tickets__Main::inject_buy_button_into_oembed()
Injects a buy/RSVP button into oEmbeds for events when necessary
Source
File: src/Tribe/Main.php
public function inject_buy_button_into_oembed() {
$event_id = get_the_ID();
if ( ! tribe_events_has_tickets( $event_id ) ) {
return;
}
$tickets = Tribe__Tickets__Tickets::get_all_event_tickets( $event_id );
$has_non_rsvp = false;
$available = false;
$now = current_time( 'timestamp' );
foreach ( $tickets as $ticket ) {
if ( 'Tribe__Tickets__RSVP' !== $ticket->provider_class ) {
$has_non_rsvp = true;
}
if (
$ticket->date_in_range( $now )
&& $ticket->is_in_stock()
) {
$available = true;
}
}
// if there aren't any tickets available, bail
if ( ! $available ) {
return;
}
$button_text = $has_non_rsvp ? __( 'Buy', 'event-tickets' ) : _x( 'RSVP', 'button text', 'event-tickets' );
/**
* Filters the text that appears in the buy/rsvp button on event oembeds
*
* @var string The button text
* @var int Event ID
*/
$button_text = apply_filters( 'event_tickets_embed_buy_button_text', $button_text, $event_id );
ob_start();
?>
<a class="tribe-event-buy" href="<?php echo esc_url( tribe_get_event_link() ); ?>" title="<?php the_title_attribute() ?>" rel="bookmark"><?php echo esc_html( $button_text ); ?></a>
<?php
$buy_button = ob_get_clean();
/**
* Filters the buy button that appears on event oembeds
*
* @var string The button markup
* @var int Event ID
*/
echo apply_filters( 'event_tickets_embed_buy_button', $buy_button, $event_id );
}