File Editor
Directories:
.. (Back)
Admin
Attendee_Registration
CSV_Importer
Cache
Commerce
Editor
Events
JSON_LD
Migration
Promoter
REST
RSVP
Repositories
Service_Providers
Shortcodes
Status
Tabbed_View
Validator
Files:
Abstract_Attendance_Totals.php
Assets.php
Attendance.php
Attendance_Totals.php
Attendee_Repository.php
Attendees.php
Attendees_Table.php
Data_API.php
Editor.php
Event_Repository.php
Global_ID.php
Global_Stock.php
Legacy_Provider_Support.php
Main.php
Metabox.php
Plugin_Register.php
Privacy.php
Query.php
RSVP.php
Redirections.php
Service_Provider.php
Templates.php
Theme_Compatibility.php
Ticket_Object.php
Ticket_Repository.php
Tickets.php
Tickets_Handler.php
Tickets_View.php
Updater.php
Version.php
Create New File
Create
Edit File: Event_Repository.php
<?php /** * A decorator of the Event repository to add and replace some tickets related functions. * * @since 4.10.4 */ use Tribe\Tickets\Repositories\Traits\Post_Attendees; use Tribe\Tickets\Repositories\Traits\Post_Tickets; /** * Class Tribe__Tickets__Event_Repository * * @since 4.10.4 */ class Tribe__Tickets__Event_Repository extends Tribe__Repository__Decorator { use Post_Attendees; use Post_Tickets; /** * Tribe__Tickets__Event_Repository constructor. * * Gets the current event repository instance to add or replace some filters in it. * * @since 4.10.4 */ public function __construct() { $this->decorated = $this->get_previously_decorated_repository(); // These filter methods are added by the Post_Tickets trait. $this->decorated->add_schema_entry( 'cost', [ $this, 'filter_by_cost' ] ); $this->decorated->add_schema_entry( 'cost_currency_symbol', [ $this, 'filter_by_cost_currency_symbol' ] ); $this->decorated->add_schema_entry( 'has_tickets', [ $this, 'filter_by_has_tickets' ] ); $this->decorated->add_schema_entry( 'has_rsvp', [ $this, 'filter_by_has_rsvp' ] ); $this->decorated->add_schema_entry( 'has_rsvp_or_tickets', [ $this, 'filter_by_has_rsvp_or_tickets' ] ); // These filter methods are added by the Post_Attendees trait. $this->decorated->add_schema_entry( 'has_attendees', [ $this, 'filter_by_has_attendees' ] ); $this->decorated->add_schema_entry( 'attendee', [ $this, 'filter_by_attendee' ] ); $this->decorated->add_schema_entry( 'attendee__not_in', [ $this, 'filter_by_attendee_not_in' ] ); $this->decorated->add_schema_entry( 'attendee_user', [ $this, 'filter_by_attendee_user' ] ); // This is not yet working, it needs more debugging to determine why it's not functional yet. //$this->decorated->add_schema_entry( 'attendee_user__not_in', [ $this, 'filter_by_attendee_user_not_in' ] ); } /** * Get the previously declared event repository so that we can decorate it. * * @since 5.2.0 * * @return Tribe__Repository */ protected function get_previously_decorated_repository() { /** * Filters the map relating event repository slugs to service container bindings. * * @see tribe_events() * * @since 5.2.0 * * @param array $map A map in the shape [ <repository_slug> => <service_name> ] * @param string $repository The currently requested implementation. * @param array $args An array of additional call arguments used to call the function beside the * repository slug. */ $map = apply_filters( 'tribe_events_event_repository_map', [ 'default' => 'events.event-repository', ], 'default', [] ); return tribe( $map['tickets_event_previous'] ); } /** * Returns an array of the attendee types handled by this repository. * * Extending repository classes should override this to add more attendee types. * * @since 4.12.1 * * @return array */ public function attendee_types() { return [ 'rsvp' => 'tribe_rsvp_attendees', 'tribe-commerce' => 'tribe_tpp_attendees', \TEC\Tickets\Commerce::PROVIDER => \TEC\Tickets\Commerce\Attendee::POSTTYPE, ]; } /** * Returns the list of meta keys relating an Attendee to a Post (Event). * * Extending repository classes should override this to add more keys. * * @since 4.12.1 * * @return array */ public function attendee_to_event_keys() { return [ 'rsvp' => '_tribe_rsvp_event', 'tribe-commerce' => '_tribe_tpp_event', \TEC\Tickets\Commerce::PROVIDER => \TEC\Tickets\Commerce\Attendee::$event_relation_meta_key, ]; } /** * Returns the meta key relating an Attendee to a User. * * @since 4.12.1 * * @return string */ public function attendee_to_user_key() { return '_tribe_tickets_attendee_user_id'; } }
Save Changes
Rename File
Rename