Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- add_filter( 'em_booking_validate', 'custom_em_booking_validate', 10, 2 );
- function custom_em_booking_validate( $result, $EM_Booking ) {
- $EM_Event = $EM_Booking->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;
- }
Advertisement
Add Comment
Please, Sign In to add comment