From 0845f55604494bebdc4d091f5f9c002021f5baaa Mon Sep 17 00:00:00 2001 From: Mykyta Synelnikov Date: Fri, 27 Jun 2025 14:24:08 +0300 Subject: [PATCH] Fix: exclude empty meta values in directory filtering Previously, empty `meta_value` entries were included in the query, potentially causing inaccurate results. This update adds a condition to exclude empty `meta_value` entries, ensuring more reliable directory filtering. --- includes/core/class-member-directory.php | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/includes/core/class-member-directory.php b/includes/core/class-member-directory.php index 81c825fc..dd5dccda 100644 --- a/includes/core/class-member-directory.php +++ b/includes/core/class-member-directory.php @@ -995,16 +995,15 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { $range = false; switch ( $filter ) { - - default: { - + default: $meta = $wpdb->get_row( $wpdb->prepare( "SELECT MIN( CONVERT( meta_value, DECIMAL ) ) as min_meta, MAX( CONVERT( meta_value, DECIMAL ) ) as max_meta, COUNT( DISTINCT meta_value ) as amount FROM {$wpdb->usermeta} - WHERE meta_key = %s", + WHERE meta_key = %s AND + meta_value != ''", $filter ), ARRAY_A @@ -1016,10 +1015,9 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { $range = apply_filters( 'um_member_directory_filter_slider_common', $range, $directory_data, $filter ); $range = apply_filters( "um_member_directory_filter_{$filter}_slider", $range, $directory_data ); - break; - } - case 'birth_date': { + + case 'birth_date': $meta = $wpdb->get_row( "SELECT MIN( meta_value ) as min_meta, MAX( meta_value ) as max_meta, @@ -1033,16 +1031,13 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { if ( isset( $meta['min_meta'] ) && isset( $meta['max_meta'] ) && isset( $meta['amount'] ) && $meta['amount'] > 1 ) { $range = array( $this->borndate( strtotime( $meta['max_meta'] ) ), $this->borndate( strtotime( $meta['min_meta'] ) ) ); } - break; - } } return $range; } - /** * @param $filter *