From 4cfc3790f721d2abffdafc4c1f3f29bb5d27c176 Mon Sep 17 00:00:00 2001 From: nikitasinelnikov Date: Tue, 20 Aug 2019 15:40:00 +0300 Subject: [PATCH] - member directory filters; --- assets/js/um-members.js | 86 ++-- includes/core/class-member-directory.php | 531 ++++++++++++----------- includes/core/um-filters-members.php | 184 -------- 3 files changed, 326 insertions(+), 475 deletions(-) diff --git a/assets/js/um-members.js b/assets/js/um-members.js index 77ef51e5..440884e3 100644 --- a/assets/js/um-members.js +++ b/assets/js/um-members.js @@ -162,45 +162,43 @@ function um_ajax_get_members( directory, args ) { var local_date = new Date(); var gmt_hours = -local_date.getTimezoneOffset()/60; - //var request =; + var request = { + directory_id: hash, + page: page, + search: search, + sorting: sorting, + nonce: um_scripts.nonce + }; - // if ( directory.find('.um-search-filter').length ) { - // directory.find('.um-search-filter').each( function() { - // var filter = jQuery(this); - // - // if ( filter.find( '.um-slider' ).length ) { - // var filter_name = filter.find( '.um-slider' ).data('field_name'); - // var value = um_get_directory_storage( directory, 'filter_' + filter_name ); - // if ( value !== null ) { - // request[ filter_name ] = value; - // request['is_filters'] = true; - // } - // } else if ( filter.find( '.um-datepicker-filter' ).length ) { - // var filter_name = filter.find( '.um-datepicker-filter' ).data('filter_name'); - // var value = um_get_directory_storage( directory, 'filter_' + filter_name ); - // if ( value !== null ) { - // request[ filter_name ] = value; - // request['is_filters'] = true; - // } - // } else { - // var filter_name = filter.find('select').attr('name'); - // var value = um_get_directory_storage( directory, 'filter_' + filter_name ); - // if ( value !== null ) { - // request[ filter_name ] = value; - // request['is_filters'] = true; - // } - // } - // }); - // } + if ( directory.find('.um-search-filter').length ) { + directory.find('.um-search-filter').each( function() { + var filter = jQuery(this); + + if ( filter.find( '.um-slider' ).length ) { + var filter_name = filter.find( '.um-slider' ).data('field_name'); + + var value = um_get_data_for_directory( directory, 'filter_' + filter_name ); + if ( typeof value != 'undefined' ) { + request[ filter_name ] = value; + } + } else if ( filter.find( '.um-datepicker-filter' ).length ) { + var filter_name = filter.find( '.um-datepicker-filter' ).data('filter_name'); + var value = um_get_data_for_directory( directory, 'filter_' + filter_name ); + if ( typeof value != 'undefined' ) { + request[ filter_name ] = value; + } + } else { + var filter_name = filter.find('select').attr('name'); + var value = um_get_data_for_directory( directory, 'filter_' + filter_name ); + if ( typeof value != 'undefined' ) { + request[ filter_name ] = value; + } + } + }); + } wp.ajax.send( 'um_get_members', { - data: { - directory_id: hash, - page: page, - search: search, - sorting: sorting, - nonce: um_scripts.nonce - }, + data: request, success: function( answer ) { //set last data hard for using on layouts reloading um_member_directory_last_data[ hash ] = answer; @@ -1065,23 +1063,29 @@ jQuery(document).ready( function() { var filter_name = jQuery(this).prop('name'); - var current_value = um_get_directory_storage( directory, 'filter_' + filter_name ); - if ( current_value === null ) { + var current_value = um_get_data_for_directory( directory, 'filter_' + filter_name ); + if ( typeof current_value == 'undefined' ) { current_value = []; + } else { + current_value = current_value.split( '||' ); } + if ( -1 === jQuery.inArray( jQuery(this).val(), current_value ) ) { current_value.push( jQuery(this).val() ); - um_set_directory_storage( directory, 'filter_' + filter_name, current_value, true ); + current_value = current_value.join( '||' ); + + um_set_url_from_data( directory, 'filter_' + filter_name, current_value ); //set 1st page after filtration - um_set_directory_storage( directory, 'page', 1, true ); + directory.data( 'page', 1 ); + um_set_url_from_data( directory, 'page', 1 ); } jQuery(this).val('').trigger('change'); um_ajax_get_members( directory ); - um_change_tag( directory ); + //um_change_tag( directory ); }); diff --git a/includes/core/class-member-directory.php b/includes/core/class-member-directory.php index 7a8c8ba0..509eb468 100644 --- a/includes/core/class-member-directory.php +++ b/includes/core/class-member-directory.php @@ -998,281 +998,312 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { */ function filters( $args ) { //filters - $query = $_POST; - if ( ! empty( $args['search_filters'] ) ) { - parse_str( $args['search_filters'], $search_filters ); + $filter_query = array(); + if ( ! empty( $args['search_fields'] ) ) { + $search_filters = maybe_unserialize( $args['search_fields'] ); if ( ! empty( $search_filters ) && is_array( $search_filters ) ) { - $query = array_merge( $search_filters, $query ); + $filter_query = array_intersect_key( $_POST, array_flip( $search_filters ) ); } } - unset( $query['search'] ); - unset( $query['directory_id'] ); - unset( $query['sorting'] ); - unset( $query['page'] ); - unset( $query['args'] ); - unset( $query['members_page'] ); - unset( $query['action'] ); - unset( $query['nonce'] ); - unset( $query['referrer_url'] ); - unset( $query['is_filters'] ); + if ( empty( $filter_query ) ) { + return; + } - if ( ! empty( $query ) && is_array( $query ) ) { - foreach ( $query as $field => $value ) { + $query = $_POST; - //$filter_data = UM()->members()->prepare_filter( $field ); + foreach ( $filter_query as $field => $value ) { - if ( $value && $field != 'um_search' && $field != 'page_id' ) { + switch ( $field ) { + default: + $value = explode( '||', $value ); - if ( strstr( $field, 'role_' ) ) { - $field = 'role'; - } + if ( is_array( $value ) ) { + $field_query = array( 'relation' => 'OR' ); - if ( ! in_array( $field, UM()->members()->core_search_fields ) ) { - - if ( 'role' == $field ) { - - if ( ! empty( $this->query_args['role__in'] ) ) { - $value = array_map('strtolower', $value); - - $this->query_args['role__in'] = is_array( $this->query_args['role__in'] ) ? $this->query_args['role__in'] : array( $this->query_args['role__in'] ); - $default_role = array_intersect( $this->query_args['role__in'], $value ); - $um_role = array_diff( $value, $default_role ); - - foreach ($um_role as $key => &$val) { - $val = 'um_' . str_replace(' ', '-', $val); - } - $this->query_args['role__in'] = array_merge( $default_role, $um_role ); - } else { - $this->query_args['role__in'] = $value; - }; - - } elseif ( 'birth_date' == $field ) { - $from_date = date( 'Y-m-d', mktime( 0,0,0, 1, 1, date('Y', time() - ($query['birth_date'][0] -1)*YEAR_IN_SECONDS ) ) ); - $to_date = date( 'Y-m-d', mktime( 0,0,0, 1, 1, date('Y', time() - ($query['birth_date'][1] +1)*YEAR_IN_SECONDS ) ) ); - - $meta_query = array( + foreach ( $value as $single_val ) { + $arr_meta_query = array( array( - 'key' => 'birth_date', - 'value' => array( $to_date, $from_date ), - 'compare' => 'BETWEEN', - 'type' => 'DATE', - 'inclusive' => true, + 'key' => $field, + 'value' => trim( $single_val ), + 'compare' => '=', + ), + array( + 'key' => $field, + 'value' => serialize( strval( trim( $single_val ) ) ), + 'compare' => 'LIKE', + ), + array( + 'key' => $field, + 'value' => '"' . trim( $single_val ) . '"', + 'compare' => 'LIKE', ) ); - $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $meta_query ) ); + if ( is_numeric( $single_val ) ) { - } elseif ( 'user_registered' == $field ) { - - $offset = 0; - - if( isset( $query['gmt_offset'] ) ) { - $offset = (int)$query['gmt_offset']; - } - - if( isset( $query['user_registered']['from'] ) ) { - $from_date = date( 'Y-m-d', strtotime( date( 'Y-m-d H:s:i', $query['user_registered']['from'] ) . "+$offset hours" ) ); - } - - if( isset( $query['user_registered']['to'] ) ) { - $to_date = date( 'Y-m-d', strtotime( date( 'Y-m-d H:s:i', $query['user_registered']['to'] ) . "+$offset hours" ) ); - } - - $date_query = array( - array( - 'column' => 'user_registered', - 'before' => $to_date, - 'after' => $from_date, - 'inclusive' => true, - ), - ); - - $this->query_args['date_query'] = array( $date_query ); - - } elseif ( 'last_login' == $field ) { - - $meta_query = array(); - $offset = 0; - - if( isset( $query['gmt_offset'] ) ) { - $offset = (int)$query['gmt_offset']; - } - - if( isset( $query['last_login']['from'] ) and isset( $query['last_login']['to'] ) ) { - $from_date = (int)$query['last_login']['from'] + ( $offset * 60 * 60 ); // client time zone offset - $to_date = (int)$query['last_login']['to'] + ( $offset * 60 * 60 ) + (24 * 60 * 60 - 1); // time 23:59 - - $meta_query[] = array( - 'key' => '_um_last_login', - 'value' => array( $from_date, $to_date ), - 'compare' => 'BETWEEN', + $arr_meta_query[] = array( + 'key' => $field, + 'value' => serialize( intval( trim( $single_val ) ) ), + 'compare' => 'LIKE', ); - } else { - - if( isset( $query['last_login']['from'] ) ) { - $from_date = (int)$query['last_login']['from'] + ( $offset * 60 * 60 ); - - $meta_query[] = array( - 'key' => '_um_last_login', - 'value' => $from_date, - 'compare' => '>', - ); - } - - if( isset( $query['last_login']['to'] ) ) { - $to_date = (int)$query['last_login']['to'] + ( $offset * 60 * 60 ) + (24 * 60 * 60 - 1); - - $meta_query[] = array( - 'key' => '_um_last_login', - 'value' => $to_date, - 'compare' => '<', - ); - } } - $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $meta_query ) ); - - } elseif( 'gmt_offset' == $field ) { - continue; - } else { - - if ( is_array( $value ) ) { - $field_query = array( 'relation' => 'OR' ); - - foreach ( $value as $single_val ) { - $field_query = array_merge( $field_query, array( - array( - 'key' => $field, - 'value' => trim( $single_val ), - 'compare' => '=', - ) - ) ); - - $types = apply_filters( 'um_search_field_types', array( - 'multiselect', - 'radio', - 'checkbox' - ) ); - - //if ( in_array( $filter_data['attrs']['type'], $types ) ) { - - $arr_meta_query = array( - array( - 'key' => $field, - 'value' => serialize( strval( trim( $single_val ) ) ), - 'compare' => 'LIKE', - ), - array( - 'key' => $field, - 'value' => '"' . trim( $single_val ) . '"', - 'compare' => 'LIKE', - ) - ); - - if ( is_numeric( $single_val ) ) { - - $arr_meta_query[ ] = array( - 'key' => $field, - 'value' => serialize( intval( trim( $single_val ) ) ), - 'compare' => 'LIKE', - ); - - } - - $field_query = array_merge( $field_query, $arr_meta_query ); - //} - } - } else { - $field_query = array( - array( - 'key' => $field, - 'value' => trim( $value ), - 'compare' => '=', - ), - 'relation' => 'OR', - ); - - $types = apply_filters( 'um_search_field_types', array( - 'multiselect', - 'radio', - 'checkbox' - ) ); - - //if ( in_array( $filter_data['attrs']['type'], $types ) ) { - - $arr_meta_query = array( - array( - 'key' => $field, - 'value' => serialize( strval( trim( $value ) ) ), - 'compare' => 'LIKE', - ), - array( - 'key' => $field, - 'value' => '"' . trim( $value ) . '"', - 'compare' => 'LIKE', - ) - ); - - if ( is_numeric( $value ) ) { - - $arr_meta_query[ ] = array( - 'key' => $field, - 'value' => serialize( intval( trim( $value ) ) ), - 'compare' => 'LIKE', - ); - - } - - $field_query = array_merge( $field_query, $arr_meta_query ); - //} - } - - /** - * UM hook - * - * @type filter - * @title um_query_args_{$field}__filter - * @description Change field's query for search at Members Directory - * @input_vars - * [{"var":"$field_query","type":"array","desc":"Field query"}] - * @change_log - * ["Since: 2.0"] - * @usage - * - * @example - * - */ - $field_query = apply_filters( "um_query_args_{$field}__filter", $field_query ); - $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $field_query ) ); + $field_query = array_merge( $field_query, $arr_meta_query ); } - } - } + /** + * UM hook + * + * @type filter + * @title um_query_args_{$field}__filter + * @description Change field's query for search at Members Directory + * @input_vars + * [{"var":"$field_query","type":"array","desc":"Field query"}] + * @change_log + * ["Since: 2.0"] + * @usage + * + * @example + * + */ + $field_query = apply_filters( "um_query_args_{$field}__filter", $field_query ); + $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $field_query ) ); + break; + case 'role': + $value = explode( '||', $value ); + $value = array_map( 'strtolower', $value ); + + if ( ! empty( $this->query_args['role__in'] ) ) { + $this->query_args['role__in'] = is_array( $this->query_args['role__in'] ) ? $this->query_args['role__in'] : array( $this->query_args['role__in'] ); + $default_role = array_intersect( $this->query_args['role__in'], $value ); + $um_role = array_diff( $value, $default_role ); + + foreach ( $um_role as $key => &$val ) { + $val = 'um_' . str_replace( ' ', '-', $val ); + } + $this->query_args['role__in'] = array_merge( $default_role, $um_role ); + } else { + $this->query_args['role__in'] = $value; + }; + + break; } - } - $query = UM()->permalinks()->get_query_array(); - $arr_columns = array(); - foreach ( UM()->members()->core_search_fields as $key ) { - if ( ! empty( $query[ $key ] ) ) { - $arr_columns[] = $key; - $this->query_args['search'] = '*' . $query[ $key ] .'*'; - } - } - if ( ! empty( $arr_columns ) ) { - $this->query_args['search_columns'] = $arr_columns; +// if ( 'role' == $field ) { +// +// if ( ! empty( $this->query_args['role__in'] ) ) { +// $value = array_map('strtolower', $value); +// +// $this->query_args['role__in'] = is_array( $this->query_args['role__in'] ) ? $this->query_args['role__in'] : array( $this->query_args['role__in'] ); +// $default_role = array_intersect( $this->query_args['role__in'], $value ); +// $um_role = array_diff( $value, $default_role ); +// +// foreach ($um_role as $key => &$val) { +// $val = 'um_' . str_replace(' ', '-', $val); +// } +// $this->query_args['role__in'] = array_merge( $default_role, $um_role ); +// } else { +// $this->query_args['role__in'] = $value; +// }; +// +// } elseif ( 'birth_date' == $field ) { +// $from_date = date( 'Y-m-d', mktime( 0,0,0, 1, 1, date('Y', time() - ($query['birth_date'][0] -1)*YEAR_IN_SECONDS ) ) ); +// $to_date = date( 'Y-m-d', mktime( 0,0,0, 1, 1, date('Y', time() - ($query['birth_date'][1] +1)*YEAR_IN_SECONDS ) ) ); +// +// $meta_query = array( +// array( +// 'key' => 'birth_date', +// 'value' => array( $to_date, $from_date ), +// 'compare' => 'BETWEEN', +// 'type' => 'DATE', +// 'inclusive' => true, +// ) +// ); +// +// $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $meta_query ) ); +// +// } elseif ( 'user_registered' == $field ) { +// +// $offset = 0; +// +// if( isset( $query['gmt_offset'] ) ) { +// $offset = (int)$query['gmt_offset']; +// } +// +// if( isset( $query['user_registered']['from'] ) ) { +// $from_date = date( 'Y-m-d', strtotime( date( 'Y-m-d H:s:i', $query['user_registered']['from'] ) . "+$offset hours" ) ); +// } +// +// if( isset( $query['user_registered']['to'] ) ) { +// $to_date = date( 'Y-m-d', strtotime( date( 'Y-m-d H:s:i', $query['user_registered']['to'] ) . "+$offset hours" ) ); +// } +// +// $date_query = array( +// array( +// 'column' => 'user_registered', +// 'before' => $to_date, +// 'after' => $from_date, +// 'inclusive' => true, +// ), +// ); +// +// $this->query_args['date_query'] = array( $date_query ); +// +// } elseif ( 'last_login' == $field ) { +// +// $meta_query = array(); +// $offset = 0; +// +// if( isset( $query['gmt_offset'] ) ) { +// $offset = (int)$query['gmt_offset']; +// } +// +// if( isset( $query['last_login']['from'] ) and isset( $query['last_login']['to'] ) ) { +// $from_date = (int)$query['last_login']['from'] + ( $offset * 60 * 60 ); // client time zone offset +// $to_date = (int)$query['last_login']['to'] + ( $offset * 60 * 60 ) + (24 * 60 * 60 - 1); // time 23:59 +// +// $meta_query[] = array( +// 'key' => '_um_last_login', +// 'value' => array( $from_date, $to_date ), +// 'compare' => 'BETWEEN', +// ); +// +// } else { +// +// if( isset( $query['last_login']['from'] ) ) { +// $from_date = (int)$query['last_login']['from'] + ( $offset * 60 * 60 ); +// +// $meta_query[] = array( +// 'key' => '_um_last_login', +// 'value' => $from_date, +// 'compare' => '>', +// ); +// } +// +// if( isset( $query['last_login']['to'] ) ) { +// $to_date = (int)$query['last_login']['to'] + ( $offset * 60 * 60 ) + (24 * 60 * 60 - 1); +// +// $meta_query[] = array( +// 'key' => '_um_last_login', +// 'value' => $to_date, +// 'compare' => '<', +// ); +// } +// } +// +// $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $meta_query ) ); +// +// } elseif( 'gmt_offset' == $field ) { +// continue; +// } else { +// +// if ( is_array( $value ) ) { +// $field_query = array( 'relation' => 'OR' ); +// +// foreach ( $value as $single_val ) { +// $field_query = array_merge( $field_query, array( +// array( +// 'key' => $field, +// 'value' => trim( $single_val ), +// 'compare' => '=', +// ) +// ) ); +// +// $types = apply_filters( 'um_search_field_types', array( +// 'multiselect', +// 'radio', +// 'checkbox' +// ) ); +// +// //if ( in_array( $filter_data['attrs']['type'], $types ) ) { +// +// $arr_meta_query = array( +// array( +// 'key' => $field, +// 'value' => serialize( strval( trim( $single_val ) ) ), +// 'compare' => 'LIKE', +// ), +// array( +// 'key' => $field, +// 'value' => '"' . trim( $single_val ) . '"', +// 'compare' => 'LIKE', +// ) +// ); +// +// if ( is_numeric( $single_val ) ) { +// +// $arr_meta_query[ ] = array( +// 'key' => $field, +// 'value' => serialize( intval( trim( $single_val ) ) ), +// 'compare' => 'LIKE', +// ); +// +// } +// +// $field_query = array_merge( $field_query, $arr_meta_query ); +// //} +// } +// } else { +// $field_query = array( +// array( +// 'key' => $field, +// 'value' => trim( $value ), +// 'compare' => '=', +// ), +// 'relation' => 'OR', +// ); +// +// $types = apply_filters( 'um_search_field_types', array( +// 'multiselect', +// 'radio', +// 'checkbox' +// ) ); +// +// //if ( in_array( $filter_data['attrs']['type'], $types ) ) { +// +// $arr_meta_query = array( +// array( +// 'key' => $field, +// 'value' => serialize( strval( trim( $value ) ) ), +// 'compare' => 'LIKE', +// ), +// array( +// 'key' => $field, +// 'value' => '"' . trim( $value ) . '"', +// 'compare' => 'LIKE', +// ) +// ); +// +// if ( is_numeric( $value ) ) { +// +// $arr_meta_query[ ] = array( +// 'key' => $field, +// 'value' => serialize( intval( trim( $value ) ) ), +// 'compare' => 'LIKE', +// ); +// +// } +// +// $field_query = array_merge( $field_query, $arr_meta_query ); +// //} +// } +// +// $field_query = apply_filters( "um_query_args_{$field}__filter", $field_query ); +// $this->query_args['meta_query'] = array_merge( $this->query_args['meta_query'], array( $field_query ) ); +// } + } } @@ -1369,7 +1400,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { $this->general_search(); - //$this->filters( $args ); + $this->filters( $args ); /** * UM hook diff --git a/includes/core/um-filters-members.php b/includes/core/um-filters-members.php index 53ec80f3..f4aa585a 100644 --- a/includes/core/um-filters-members.php +++ b/includes/core/um-filters-members.php @@ -102,190 +102,6 @@ function um_remove_special_users_from_list( $query_args, $args ) { //add_filter( 'um_prepare_user_query_args', 'um_remove_special_users_from_list', 99, 2 ); -/** - * Adds search parameters - * - * @hooked 'um_prepare_user_query_args' - * - * @param $query_args - * @param $args - * - * @return mixed|void - */ -function um_add_search_to_query( $query_args, $args ) { - extract( $args ); - - if ( ! empty( $args['search_filters'] ) ) { - $_REQUEST['um_search'] = 1; - } - - if ( isset( $_REQUEST['um_search'] ) ) { - - $query = UM()->permalinks()->get_query_array(); - - if ( ! empty( $args['search_filters'] ) ) { - parse_str( $args['search_filters'], $search_filters ); - if ( $search_filters && is_array( $search_filters ) ) { - $query = array_merge( $search_filters, $query ); - } - } - - // if searching - if ( isset( $query['search'] ) ) { - $query_args['search'] = '*' . um_filter_search( $query['search'] ) . '*'; - unset( $query['search'] ); - } - - if ( $query && is_array( $query ) ) { - foreach ( $query as $field => $value ) { - - 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_' ) ) - $field = 'role'; - - if ( ! in_array( $field, UM()->members()->core_search_fields ) ) { - - if ( 'role' == $field ) { - $query_args['role__in'] = trim( $value ); - } else { - $filter_data = UM()->members()->prepare_filter( $field ); - if ( $filter_data['type'] == 'select' ) { - $field_query = array( - array( - 'key' => $field, - 'value' => trim( $value ), - 'compare' => '=', - ), - 'relation' => 'OR', - ); - - - $types = apply_filters( 'um_search_field_types', array( - 'multiselect', - 'radio', - 'checkbox' - ) ); - - if ( in_array( $filter_data['attrs']['type'], $types ) ) { - - $arr_meta_query = array( - array( - 'key' => $field, - 'value' => serialize( strval( trim( $value ) ) ), - 'compare' => 'LIKE', - ), - array( - 'key' => $field, - 'value' => '"' . trim( $value ) . '"', - 'compare' => 'LIKE', - ) - ); - - if( is_numeric( $value ) ){ - - $arr_meta_query[ ] = array( - 'key' => $field, - 'value' => serialize( intval( trim( $value ) ) ), - 'compare' => 'LIKE', - ); - - } - - $field_query = array_merge( $field_query, $arr_meta_query ); - } - - } else { - $field_query = array( - array( - 'key' => $field, - 'value' => trim( $value ), - 'compare' => '=', - ), - array( - 'key' => $field, - 'value' => trim( $value ), - 'compare' => 'LIKE', - ), - array( - 'key' => $field, - 'value' => trim( $serialize_value ), - 'compare' => 'LIKE', - ), - 'relation' => 'OR', - ); - } - - /** - * UM hook - * - * @type filter - * @title um_query_args_{$field}__filter - * @description Change field's query for search at Members Directory - * @input_vars - * [{"var":"$field_query","type":"array","desc":"Field query"}] - * @change_log - * ["Since: 2.0"] - * @usage - * - * @example - * - */ - $field_query = apply_filters( "um_query_args_{$field}__filter", $field_query ); - $query_args['meta_query'][] = $field_query; - } - - } - - } - - } - } - - } - - /** - * UM hook - * - * @type filter - * @title um_query_args_filter - * @description Change query for search at Members Directory - * @input_vars - * [{"var":"$query_args","type":"array","desc":"Query Arguments"}] - * @change_log - * ["Since: 2.0"] - * @usage - * - * @example - * - */ - $query_args = apply_filters( 'um_query_args_filter', $query_args ); - - if ( isset( $query_args['meta_query'] ) && count( $query_args['meta_query'] ) == 1 ) - unset( $query_args['meta_query'] ); - - return $query_args; - -} -//add_filter( 'um_prepare_user_query_args', 'um_add_search_to_query', 50, 2 ); - - /** * Adds main parameters *