For developers who want to change how restricted events behave, the Events for Members-Only Add On offers filter hooks for the event membership message and for each events plugin integration. The Add On has no action hooks.
Table of contents
General
pmpro_events_supports_event_slug
Filters the post types that get the event version of the membership required message. On a single post of one of these types, the message says “this event” instead of the standard wording. With Paid Memberships Pro 3.1 or later, it reads “You must be a [Level Name] member to access this event.” with a Join Now button for events restricted to one level, or “You must be a member to access this event.” with a View Membership Levels button otherwise.
The default only includes Events Manager events. Add tribe_events for The Events Calendar or sc_event for Sugar Calendar to use the event message with those plugins.
apply_filters( 'pmpro_events_supports_event_slug', array $event_slugs );
Parameters
$event_slugs: array; Post type slugs to treat as events. Defaultarray( 'event' ).
The Events Calendar
pmpro_events_tribe_events_show_excerpts
Filters whether non-members see the excerpt of a restricted event from The Events Calendar. The Add On uses it for excerpts in calendar views, widgets, and blocks, the REST API, and the event description in structured data.
apply_filters( 'pmpro_events_tribe_events_show_excerpts', bool $showexcerpts, WP_Post $post );
Parameters
$showexcerpts: bool; Whether to show excerpts. Default is the value of the Show Excerpts to Non-Members? setting.$post: WP_Post; The event.
pmpro_events_tribe_post_single_html
Filters the short-circuit value for The Events Calendar and Event Tickets templates. On a restricted single event that wasn’t built with the block editor, the Add On sets $html to false for non-members, which stops each template from rendering. Return null to let a template render normally.
apply_filters( 'pmpro_events_tribe_post_single_html', string|false|null $html, WP_Post $post );
Parameters
$html: string|false|null; The template HTML to use instead of rendering the template.falsefor non-members on a restricted single event, otherwise the value passed in by The Events Calendar (usuallynull).$post: WP_Post; The current post.
pmpro_events_tribe_events_page_modules
Filters the template parts The Events Calendar loads on a restricted single event for non-members. The Add On replaces the list of templates with an empty array, which removes sections like the event meta. Return $templates to load the original template parts.
apply_filters( 'pmpro_events_tribe_events_page_modules', array $templates_to_load, array $templates, string $slug, string $name );
Parameters
$templates_to_load: array; The template files to load. Default empty array.$templates: array; The template files The Events Calendar would load.$slug: string; The template part slug.$name: string; The template part name.
pmpro_events_tribe_events_tickets_page_modules
Filters the Event Tickets RSVP and Tribe Commerce PayPal ticket form templates on a restricted single event for non-members. The Add On returns an empty string, which hides the form. Return $file to show the form. Non-members still can’t RSVP or buy tickets for the event.
apply_filters( 'pmpro_events_tribe_events_tickets_page_modules', string $template_file, string $file );
Parameters
$template_file: string; The template file to load. Default empty string.$file: string; The full path to the template file Event Tickets would load.
Sugar Calendar
pmpro_events_sc_hide_event_meta
Filters whether to remove the event details, ticketing box, ticket checkout popup, and Google map from a restricted Sugar Calendar event page for non-members. Return false to keep them on the page. Non-members still can’t buy tickets for the event.
apply_filters( 'pmpro_events_sc_hide_event_meta', bool $hide_event_meta );
Parameters
$hide_event_meta: bool; Whether to remove the event details. Defaulttrue.
All-in-One Event Calendar
pmpro_events_ai1ec_query_args
Filters the get_posts() arguments used to find the events the current user can access when Filter searches and archives? is set to Yes. Only events in the results are shown in the calendar. Applies to All-in-One Event Calendar versions before 3.0.
apply_filters( 'pmpro_events_ai1ec_query_args', array $events_query_args );
Parameters
$events_query_args: array; Arguments passed toget_posts(). Defaultarray( 'post_type' => 'ai1ec_event', 'limit' => '50' ).
The default arguments don’t include numberposts, so get_posts() returns its default of 5 events. Add 'numberposts' => -1 with this filter to include every event.
Get Support From Our Team of Experts
Have a question about how to use this feature? Our Support Page outlines three ways to get support.
Our Max plans include hands-on help customizing your membership site and implementing new features. Upgrade to PMPro Max now »
Last updated on November 12, 2026

