From 474d54d6dfb29ad4abc04a784da380ec549b4d40 Mon Sep 17 00:00:00 2001 From: Yurii Nalivaiko Date: Mon, 29 Jul 2024 13:10:36 +0200 Subject: [PATCH 1/6] Added conditional checks for phone field --- includes/core/um-filters-fields.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/includes/core/um-filters-fields.php b/includes/core/um-filters-fields.php index 8576e68a..6627c63c 100644 --- a/includes/core/um-filters-fields.php +++ b/includes/core/um-filters-fields.php @@ -144,6 +144,13 @@ add_filter( 'um_profile_field_filter_hook__vimeo_video', 'um_profile_field_filte * @return int|string */ function um_profile_field_filter_hook__phone( $value, $data ) { + $value = str_replace( '+', '', $value ); + $value = trim( $value ); + + if ( ! $value ) { + return ''; + } + $value = '' . esc_html( $value ) . ''; return $value; } From 744362706a919dd13d850d36dfb9aa4f8c3665eb Mon Sep 17 00:00:00 2001 From: Yurii Nalivaiko Date: Mon, 29 Jul 2024 14:12:11 +0200 Subject: [PATCH 2/6] Added sanitized tel input type --- includes/core/class-form.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/includes/core/class-form.php b/includes/core/class-form.php index 0593c112..e5439dd7 100644 --- a/includes/core/class-form.php +++ b/includes/core/class-form.php @@ -863,6 +863,9 @@ if ( ! class_exists( 'um\core\Form' ) ) { case 'checkbox': $form[ $k ] = is_array( $form[ $k ] ) ? array_map( 'sanitize_text_field', $form[ $k ] ) : sanitize_text_field( $form[ $k ] ); break; + case 'tel': + $form[ $k ] = sanitize_text_field( $field ); + break; } } } From 518e84d27fffa936fc2523a8e9f3185c0d158eee Mon Sep 17 00:00:00 2001 From: Yurii Nalivaiko Date: Mon, 29 Jul 2024 15:01:28 +0200 Subject: [PATCH 3/6] Moved tel to other types that use same sanitization --- includes/core/class-form.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/includes/core/class-form.php b/includes/core/class-form.php index e5439dd7..eecc1eec 100644 --- a/includes/core/class-form.php +++ b/includes/core/class-form.php @@ -856,6 +856,7 @@ if ( ! class_exists( 'um\core\Form' ) ) { case 'vimeo_video': case 'soundcloud_track': case 'spotify': + case 'tel': $form[ $k ] = sanitize_text_field( $form[ $k ] ); break; case 'multiselect': @@ -863,9 +864,6 @@ if ( ! class_exists( 'um\core\Form' ) ) { case 'checkbox': $form[ $k ] = is_array( $form[ $k ] ) ? array_map( 'sanitize_text_field', $form[ $k ] ) : sanitize_text_field( $form[ $k ] ); break; - case 'tel': - $form[ $k ] = sanitize_text_field( $field ); - break; } } } From 3096f7e4119a08e3e7862d3c5107d0a08a6817cd Mon Sep 17 00:00:00 2001 From: Yurii Nalivaiko Date: Mon, 29 Jul 2024 15:01:59 +0200 Subject: [PATCH 4/6] Updated conditions to use test value and not remove plus sign --- includes/core/um-filters-fields.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/includes/core/um-filters-fields.php b/includes/core/um-filters-fields.php index 6627c63c..2c19fb71 100644 --- a/includes/core/um-filters-fields.php +++ b/includes/core/um-filters-fields.php @@ -141,16 +141,17 @@ add_filter( 'um_profile_field_filter_hook__vimeo_video', 'um_profile_field_filte * @param $value * @param $data * - * @return int|string + * @return string */ function um_profile_field_filter_hook__phone( $value, $data ) { - $value = str_replace( '+', '', $value ); - $value = trim( $value ); + $test_value = str_replace( '+', '', $value ); + $test_value = trim( $test_value ); - if ( ! $value ) { + if ( ! $test_value ) { return ''; } + $value = trim( $value ); $value = '' . esc_html( $value ) . ''; return $value; } From f49fdecbb33c7e4a592701a1a9c64ef1827dfe4e Mon Sep 17 00:00:00 2001 From: Yurii Nalivaiko Date: Mon, 29 Jul 2024 15:23:02 +0200 Subject: [PATCH 5/6] Updated condition --- includes/core/um-filters-fields.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/includes/core/um-filters-fields.php b/includes/core/um-filters-fields.php index 2c19fb71..4edee90a 100644 --- a/includes/core/um-filters-fields.php +++ b/includes/core/um-filters-fields.php @@ -144,10 +144,7 @@ add_filter( 'um_profile_field_filter_hook__vimeo_video', 'um_profile_field_filte * @return string */ function um_profile_field_filter_hook__phone( $value, $data ) { - $test_value = str_replace( '+', '', $value ); - $test_value = trim( $test_value ); - - if ( ! $test_value ) { + if ( ! trim( str_replace( '+', '', $value ) ) ) { return ''; } From 798c82bed0c677ad6b0797cd27fec5b9dd3ae297 Mon Sep 17 00:00:00 2001 From: Yurii Nalivaiko Date: Mon, 29 Jul 2024 15:42:58 +0200 Subject: [PATCH 6/6] Updated condition --- includes/core/um-filters-fields.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/includes/core/um-filters-fields.php b/includes/core/um-filters-fields.php index 4edee90a..9d145edc 100644 --- a/includes/core/um-filters-fields.php +++ b/includes/core/um-filters-fields.php @@ -144,7 +144,7 @@ add_filter( 'um_profile_field_filter_hook__vimeo_video', 'um_profile_field_filte * @return string */ function um_profile_field_filter_hook__phone( $value, $data ) { - if ( ! trim( str_replace( '+', '', $value ) ) ) { + if ( empty( trim( str_replace( '+', '', $value ) ) ) ) { return ''; }