Tribe__Tickets__Tickets_View::get_rsvp_block( WP_Post|int $post, boolean $echo = true, int[] $include_tickets = array() )

Gets the RSVP block template “out of context” and makes it usable for Classic views.


Parameters

$post

(WP_Post|int) (Required) The post object or ID.

$echo

(boolean) (Optional) Whether to echo the output or not.

Default value: true

$include_tickets

(int[]) (Optional) Array of ticket IDs to include, excluding all others.

Default value: array()


Top ↑

Return

(string) The block HTML.


Top ↑

Source

File: src/Tribe/Tickets_View.php

	public function get_rsvp_block( $post, $echo = true ) {
		if ( empty( $post ) ) {
			return '';
		}

		if ( is_numeric( $post ) ) {
			$post = get_post( $post );
		}

		if (
			empty( $post )
			|| ! ( $post instanceof WP_Post )
		) {
			return '';
		}

		// If password protected then do not display content.
		if ( post_password_required( $post ) ) {
			return '';
		}

		$post_id = $post->ID;

		/** @var \Tribe__Tickets__Editor__Template $template */
		$template = tribe( 'tickets.editor.template' );

		/** @var \Tribe__Tickets__Editor__Blocks__Rsvp $blocks_rsvp */
		$blocks_rsvp = tribe( 'tickets.editor.blocks.rsvp' );

		/** @var Tribe__Tickets__RSVP $rsvp */
		$rsvp = tribe( 'tickets.rsvp' );

		// Load assets manually.
		$blocks_rsvp->assets();

		$tickets        = $blocks_rsvp->get_tickets( $post_id );
		$active_tickets = $blocks_rsvp->get_active_tickets( $tickets );
		$past_tickets   = $blocks_rsvp->get_all_tickets_past( $tickets );

		$args = [
			'post_id'          => $post_id,
			'attributes'       => $blocks_rsvp->attributes(),
			'active_rsvps'     => $active_tickets,
			'all_past'         => $past_tickets,
			'has_rsvps'        => ! empty( $tickets ),
			'has_active_rsvps' => ! empty( $active_tickets ),
			'must_login'       => ! is_user_logged_in() && $rsvp->login_required(),
			'login_url'        => Tribe__Tickets__Tickets::get_login_url( $post_id ),
			'threshold'        => $blocks_rsvp->get_threshold( $post_id ),
		];

		// Add the rendering attributes into global context.
		$template->add_template_globals( $args );

		// @todo Remove this after G20.07.
		// Determine whether to show the previews on the page.
		if (
			defined( 'TRIBE_TICKETS_RSVP_NEW_VIEWS_PREVIEW' )
			&& TRIBE_TICKETS_RSVP_NEW_VIEWS_PREVIEW
		) {
			// Enqueue new assets.
			tribe_asset_enqueue( 'tribe-tickets-rsvp-style' );
			tribe_asset_enqueue( 'tribe-tickets-form-style' );
			// @todo: Remove this once we solve the common breakpoints vs container based.
			tribe_asset_enqueue( 'tribe-common-responsive' );

			return $template->template( 'v2/rsvp-kitchen-sink', $args, $echo );
		}

		// Maybe render the new views.
		if ( tribe_tickets_rsvp_new_views_is_enabled() ) {
			// Enqueue new assets.
			tribe_asset_enqueue( 'tribe-tickets-rsvp' );
			tribe_asset_enqueue( 'tribe-tickets-rsvp-style' );
			tribe_asset_enqueue( 'tribe-tickets-form-style' );
			// @todo: Remove this once we solve the common breakpoints vs container based.
			tribe_asset_enqueue( 'tribe-common-responsive' );

			return $template->template( 'v2/rsvp', $args, $echo );
		}

		// Enqueue assets.
		tribe_asset_enqueue( 'tribe-tickets-gutenberg-rsvp' );
		tribe_asset_enqueue( 'tribe-tickets-gutenberg-block-rsvp-style' );

		return $template->template( 'blocks/rsvp', $args, $echo );
	}

Top ↑

Changelog

Changelog
Version Description
4.12.3 Introduced.