Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- * Prevent duplicate recerrence when using [events_list view="grid" scope="future"]
- */
- add_filter( 'em_events_output_events', function( $events, $events_count, $args ) {
- $unique_events = array();
- $seen_recurrences = array();
- $today = current_time( 'Y-m-d' );
- foreach ( $events as $EM_Event ) {
- if (
- ! empty( $EM_Event->event_type ) &&
- $EM_Event->event_type === 'recurrence' &&
- in_array( $args['scope'] ?? '', array( 'all', 'future' ), true )
- ) {
- $recurrence_id = $EM_Event->post_id;
- // Skip past recurrence events.
- if ( $EM_Event->event_end_date < $today ) {
- continue;
- }
- // Skip duplicate recurrence events.
- if ( in_array( $recurrence_id, $seen_recurrences, true ) ) {
- continue;
- }
- // Mark this recurrence as seen.
- $seen_recurrences[] = $recurrence_id;
- }
- $unique_events[] = $EM_Event;
- }
- return $unique_events;
- }, 10, 3 );
Advertisement