- fixed members directory search by multiselect;

This commit is contained in:
nikitozzzzzzz
2018-07-05 11:24:42 +03:00
parent a776ff27bf
commit d5c10829b2
4 changed files with 40 additions and 18 deletions
+29 -13
View File
@@ -124,7 +124,7 @@ function um_add_search_to_query( $query_args, $args ){
if ( in_array( $field, array( 'members_page' ) ) ) continue;
$serialize_value = serialize( strval( $value ) );
if ( $value && $field != 'um_search' && $field != 'page_id' ) {
if ( strstr( $field, 'role_' ) )
@@ -135,18 +135,33 @@ function um_add_search_to_query( $query_args, $args ){
if ( 'role' == $field ) {
$query_args['role__in'] = trim( $value );
} else {
$field_query = array(
array(
'key' => $field,
'value' => trim( $value ),
'compare' => '=',
),
'relation' => 'OR',
);
$filter_data = UM()->members()->prepare_filter( $field );
if( $filter_data['type'] != 'select' ) {
$field_query = array_merge( $field_query, array(
if ( $filter_data['type'] == 'select' ) {
$field_query = array(
array(
'key' => $field,
'value' => trim( $value ),
'compare' => '=',
),
'relation' => 'OR',
);
if ( $filter_data['attrs']['type'] == 'multiselect' ) {
$field_query = array_merge( $field_query, array(
array(
'key' => $field,
'value' => '"' . trim( $value ) . '"',
'compare' => 'LIKE',
),
) );
}
} else {
$field_query = array(
array(
'key' => $field,
'value' => trim( $value ),
'compare' => '=',
),
array(
'key' => $field,
'value' => trim( $value ),
@@ -158,8 +173,9 @@ function um_add_search_to_query( $query_args, $args ){
'compare' => 'LIKE',
),
'relation' => 'OR',
) );
);
}
/**
* UM hook
*