From 64c51f969bb02f39780c8311d41a8423f6571689 Mon Sep 17 00:00:00 2001 From: Yurii Nalivaiko Date: Mon, 1 Oct 2018 10:24:10 +0300 Subject: [PATCH] - fixes in conditional logic --- includes/core/um-actions-form.php | 10 ++++++++-- includes/core/um-filters-fields.php | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/includes/core/um-actions-form.php b/includes/core/um-actions-form.php index 5cf15388..03d89b9a 100644 --- a/includes/core/um-actions-form.php +++ b/includes/core/um-actions-form.php @@ -346,7 +346,10 @@ function um_submit_form_errors_hook_( $args ) { continue 2; } } elseif ( $op == 'contains' ) { - if ( strstr( $cond_value, $parent_value ) ) { + if ( is_string( $cond_value ) && strstr( $cond_value, $parent_value ) ) { + continue 2; + } + if( is_array( $cond_value ) && in_array( $parent_value, $cond_value ) ) { continue 2; } } @@ -376,7 +379,10 @@ function um_submit_form_errors_hook_( $args ) { continue 2; } } elseif ( $op == 'contains' ) { - if ( ! strstr( $cond_value, $parent_value ) ) { + if ( is_string( $cond_value ) && ! strstr( $cond_value, $parent_value ) ) { + continue 2; + } + if( is_array( $cond_value ) && !in_array( $parent_value, $cond_value ) ) { continue 2; } } diff --git a/includes/core/um-filters-fields.php b/includes/core/um-filters-fields.php index ef5dce38..243c34d0 100644 --- a/includes/core/um-filters-fields.php +++ b/includes/core/um-filters-fields.php @@ -405,7 +405,10 @@ function um_get_custom_field_array( $array, $fields ) { $array['required'] = 0; } } elseif ( $op == 'contains' ) { - if ( strstr( $cond_value, $parent_value ) ) { + if ( is_string( $cond_value ) && strstr( $cond_value, $parent_value ) ) { + $array['required'] = 0; + } + if( is_array( $cond_value ) && in_array( $parent_value, $cond_value ) ) { $array['required'] = 0; } } @@ -435,7 +438,10 @@ function um_get_custom_field_array( $array, $fields ) { $array['required'] = 0; } } elseif ( $op == 'contains' ) { - if ( ! strstr( $cond_value, $parent_value ) ) { + if( is_string( $cond_value ) && !strstr( $cond_value, $parent_value ) ) { + $array['required'] = 0; + } + if( is_array( $cond_value ) && !in_array( $parent_value, $cond_value ) ) { $array['required'] = 0; } }