\WP_Stager_Integration\Event::get_single_event_data(): array

Description

Gets event data on a single event page or for the current post in the loop.

Works on single event pages and when inside a loop where the current post (global $post) is a stager Event post object. Returns placeholder data in block editor preview mode.

Returns:

array The raw Stager event data.

Information

Fileclass-event.php line 119

Full Code

/**
 * Gets event data on a single event page or for the current post in the loop.
 *
 * Works on single event pages and when inside a loop where the current post
 * (global $post) is a stager Event post object.
 * Returns placeholder data in block editor preview mode.
 *
 * @return array    The raw Stager event data.
 */
public static function get_single_event_data() {

    // If we're in block editor preview mode, return placeholder data
    if ( defined( 'WPSTAGER_BLOCK_EDITOR_PREVIEW' ) && WPSTAGER_BLOCK_EDITOR_PREVIEW ) {
        return self::get_placeholder_data();
    }

    global $post;

    // Init
    $event_data = array();

    // Bail if we don't have a current event post (single event page or inside loop with event CPT)
    if ( ! ( $post && isset( $post->post_type ) && $post->post_type === self::CPT_SLUG ) ) {
        return $event_data;
    }

    // Get data
    $event_id   = (string) ($post->post_name ?? '');
    $cache_key  = 'event_data_' . $event_id;
    $event_data = Options::get_cache( $cache_key );

    // Return cached data if available
    if ( $event_data ) {
        return (array) ($event_data ?: array());
    }

    // Get event data from DB and cache it
    $event_data = self::get_event_by_id( $event_id );
    Options::set_cache( $cache_key, $event_data );

    return (array) ($event_data ?: array());
}

💡 If you ever get stuck or have a question, please check our FAQs, our Free Integration Service, our paid Full Integration Service, or reach out to us!

Get WP Stager Integration

🎁 Limited offer: Use code WELCOME26 to get your first month for free!