Tribe__Tickets__JSON_LD__Order::get_offer( object $ticket, WP_Post $post )

Builds an object representing a ticket offer.


Parameters

$ticket

(object) (Required)

$post

(WP_Post) (Required)


Top ↑

Return

(object)


Top ↑

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 );
	}