Tribe__Tickets__JSON_LD__Order::get_offer( object $ticket, WP_Post $post )
Builds an object representing a ticket offer.
Contents
Parameters
- $ticket
-
(object) (Required)
- $post
-
(WP_Post) (Required)
Return
(object)
Source
File: src/Tribe/JSON_LD/Order.php
public function get_offer( $ticket, $post ) {
$price = $ticket->price;
// We use `the-events-calendar` domain to make sure it's translate-able the correct way
$string_free = __( 'Free', 'the-events-calendar' );
// JSON-LD can't have free as a price
if ( strpos( strtolower( trim( $price ) ), $string_free ) !== false ) {
$price = 0;
}
$offer = (object) array(
'@type' => 'Offer',
'url' => get_permalink( $post ),
'price' => $price,
'category' => 'primary',
'availability' => $this->get_ticket_availability( $ticket ),
'priceCurrency' => $this->get_price_currency( $ticket ),
);
if ( ! empty( $ticket->start_date ) ) {
$offer->validFrom = date( DateTime::ATOM, strtotime( $ticket->start_date ) );
}
if ( ! empty( $ticket->end_date ) ) {
$offer->validThrough = date( DateTime::ATOM, strtotime( $ticket->end_date ) );
}
/**
* Allows modifications to be made to the offer object representing a specific
* event ticket.
*
* @param object $offer
* @param Tribe__Tickets__Ticket_Object $ticket
* @param object $post
*/
return (object) apply_filters( 'tribe_json_ld_offer_object', $offer, $ticket, $post );
}