Tribe__Events__Community__Main::doMyEvents( int $page = null, bool $print_before_after_override = false, bool $shortcode = false )
Show the current user’s events.
Contents
Parameters
- $page
-
(int) (Optional) Pagination.
Default value: null
- $print_before_after_override
-
(bool) (Optional)
Default value: false
- $shortcode
-
(bool) (Optional)
Default value: false
Return
(string) The page.
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;
}
Changelog
| Version | Description |
|---|---|
| 1.0 | Introduced. |