Tribe__Events__Community__Main::doMyEvents( int $page = null, bool $print_before_after_override = false, bool $shortcode = false )

Show the current user’s events.


Parameters

$page

(int) (Optional) Pagination.

Default value: null

$print_before_after_override

(bool) (Optional)

Default value: false

$shortcode

(bool) (Optional)

Default value: false


Top ↑

Return

(string) The page.


Top ↑

Source

File: src/Tribe/Main.php

		public function doMyEvents( $page = null, $print_before_after_override = false, $shortcode = false ) {
			$output = '';
			$this->default_template_compatibility( $print_before_after_override );

			$this->loadScripts = true;
			do_action( 'tribe_ce_before_event_list_page' );
			$output .= '<div class="tribe-community-events-content">';
			ob_start();

			if ( $this->should_print_before_after_html ) {
				tribe_events_before_html();
			}

			$output .= ob_get_clean();

			if ( is_user_logged_in() ) {

				$current_user = wp_get_current_user();

				global $paged;

				if ( empty( $paged ) && ! empty( $page ) ) {
					$paged = $page;
				}

				add_filter( 'tribe_query_can_inject_date_field', '__return_false' );

				/**
				 * Allow filtering the "my events" query 'orderby' param directly.
				 *
				 * @since 4.6.2
				 *
				 * @param string 'event_date'    defaults to event_date now for orderby
				 */
				$orderby = apply_filters( 'tribe_ce_my_events_query_orderby', 'event_date' );

				/**
				 * Allow filtering the "my events" query 'order' param directly.
				 *
				 * @since 4.6.2
				 *
				 * @param string 'ASC'    defaults to ASC now for order
				 */
				$order = apply_filters( 'tribe_ce_my_events_query_order', 'ASC' );

				$args = array(
					'posts_per_page'      => $this->eventsPerPage,
					'paged'               => $paged,
					'author'              => $current_user->ID,
					'post_type'           => Tribe__Events__Main::POSTTYPE,
					'post_status'         => array( 'pending', 'draft', 'future', 'publish' ),
					'eventDisplay'        => empty( $_GET['eventDisplay'] ) ? 'list' : $_GET['eventDisplay'],
					'tribeHideRecurrence' => false,
					'orderby'             => sanitize_text_field( $orderby ),
					'order'               => sanitize_text_field( $order ),
					's'                   => isset( $_GET['event-search'] ) ? esc_html( $_GET['event-search'] ) : '',
				);

				/**
				 * Allow filtering the "my events" query args.
				 * Note that 'order' and 'orderby can be filtered directly -
				 *     removing the need to sift through the array to change them
				 *     via: `tribe_ce_my_events_query_order` and `tribe_ce_my_events_query_orderby`
				 *
				 * @since 4.6.1.2
				 *
				 * @param array $args    array of query args
				 */
				$args = apply_filters( 'tribe_ce_my_events_query', $args );
				$events = tribe_get_events( $args, true );

				remove_filter( 'tribe_query_can_inject_date_field', '__return_false' );

				/**
				 * Allow users to inject content into the end of the list
				 *
				 * @since 4.6.1.2
				 */
				do_action( 'tribe_ce_before_event_list_page_template' );
				ob_start();
				if ( $shortcode ) {
					$template = 'community/event-list-shortcode';
				} else {
					$template = 'community/event-list';
				}

				/**
				 * Allow filtering the template being included for the event list.
				 *
				 * @since 4.6.2
				 *
				 * @param string $template Template to include.
				 */
				$template = apply_filters( 'tribe_events_community_list_page_template_include', $template );

				include Tribe__Events__Templates::getTemplateHierarchy( $template );

				$output .= ob_get_clean();

				wp_reset_query();
			} else {
				do_action( 'tribe_ce_event_list_login_form' );
				$output .= $this->login_form( __( 'Please log in to view your events', 'tribe-events-community' ) );
			}

			ob_start();

			if ( $this->should_print_before_after_html ) {
				tribe_events_after_html();
			}

			$output .= ob_get_clean();
			$output .= '</div>';

			return $output;
		}

Top ↑

Changelog

Changelog
Version Description
1.0 Introduced.