get_event(); if ( empty( $EM_Event->event_attributes['dependent_event'] ) ) { return $result; } // Example: // 1,2,3 $dependent_events = preg_split( '/\s*,\s*/', $EM_Event->event_attributes['dependent_event'] ); $has_booked_parent_event = false; $error_event = null; foreach ( $dependent_events as $event_id ) { $event_id = absint( trim( $event_id ) ); if ( ! $event_id ) { continue; } $parent_event = em_get_event( $event_id ); if ( empty( $parent_event->event_id ) ) { continue; } if ( ! $error_event ) { $error_event = $parent_event; } // OR logic. if ( static::has_booked( $parent_event ) ) { $has_booked_parent_event = true; break; } } // None of the dependent events were booked. if ( ! $has_booked_parent_event ) { if ( $error_event ) { $error = static::get_error_message( $error_event ); $EM_Booking->add_error( $error ); } $result = false; } return $result; }