Tribe__Tickets__REST__V1__Attendee_Repository::by_primary_key( mixed $primary_key )

Overrides the base implementation to make sure only accessible attendees are returned.


Parameters

$primary_key

(mixed) (Required) The attendee ID.


Top ↑

Return

(array|WP_Error) The Attendee data on success, or a WP_Error detailing why the read failed.


Top ↑

Source

File: src/Tribe/REST/V1/Attendee_Repository.php

	public function by_primary_key( $primary_key ) {
		$this->decorated->set_query_builder( null );

		$query = $this->decorated->get_query();
		$query->set( 'fields', 'ids' );
		$query->set( 'p', $primary_key );
		$found = $query->get_posts();
		/** @var Tribe__Tickets__REST__V1__Messages $messages */
		$messages = tribe( 'tickets.rest-v1.messages' );

		if ( empty( $found ) ) {
			return new WP_Error( 'attendee-not-found', $messages->get_message( 'attendee-not-found' ), array( 'status' => 404 ) );
		}

		if ( current_user_can( 'read_private_posts' ) ) {
			return $this->format_item( $found[0] );
		}

		$this->decorated->by( 'optout', 'no' );
		$this->decorated->by( 'post_status', 'publish' );
		$this->decorated->by( 'rsvp_status__or_none', 'yes' );

		$cap_query = $this->decorated->get_query();
		$cap_query->set( 'fields', 'ids' );
		$cap_query->set( 'p', $primary_key );
		$found_w_cap = $cap_query->get_posts();

		if ( empty( $found_w_cap ) ) {
			return new WP_Error( 'attendee-not-accessible', $messages->get_message( 'attendee-not-accessible' ), array( 'status' => 401 ) );
		}

		$this->decorated->set_query_builder( $this );

		return $this->format_item( $found_w_cap[0] );
	}

Top ↑

Changelog

Changelog
Version Description
4.8 Introduced.