Tribe__Tickets__REST__V1__Attendee_Repository::by_primary_key( mixed $primary_key )
Overrides the base implementation to make sure only accessible attendees are returned.
Contents
Parameters
- $primary_key
-
(mixed) (Required) The attendee ID.
Return
(array|WP_Error) The Attendee data on success, or a WP_Error detailing why the read failed.
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] );
}
Changelog
| Version | Description |
|---|---|
| 4.8 | Introduced. |