function um_add_search_to_query($query_args, $args) { global $ultimatemember; extract($args); if (isset($_REQUEST['um_search'])) { $query = $ultimatemember->permalinks->get_query_array(); // 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; } if (in_array($field, array('gender'))) { $operator = '='; } else { $operator = 'LIKE'; } $arr_filter_field_types = array('checkbox', 'multiselect'); $arr_field_types = apply_filters('um_search_filter_field_types', $arr_filter_field_types); if (in_array($ultimatemember->fields->get_field_type($field), $arr_field_types)) { $operator = 'LIKE'; if (!empty($value)) { $value = serialize(strval($value)); } } if (in_array($ultimatemember->fields->get_field_type($field), array('select'))) { $operator = '='; } if ($value && $field != 'um_search' && $field != 'page_id') { if (!in_array($field, $ultimatemember->members->core_search_fields)) { if (strstr($field, 'role_')) { $field = 'role'; $operator = '='; } $query_args['meta_query'][] = array('key' => $field, 'value' => trim($value), 'compare' => $operator); } } } } } // allow filtering $query_args = apply_filters('um_query_args_filter', $query_args); if (count($query_args['meta_query']) == 1) { unset($query_args['meta_query']); } return $query_args; }
/** * Returns the user search query * @return string */ function um_get_search_query() { global $ultimatemember; $query = $ultimatemember->permalinks->get_query_array(); $search = isset($query['search']) ? $query['search'] : ''; return um_filter_search($search); }