Fix search filters and multi-select fields

This commit is contained in:
champsupertramp
2016-07-21 18:58:32 +08:00
parent 61094ab7ad
commit 1402099dce
2 changed files with 13 additions and 4 deletions
+5 -3
View File
@@ -1641,10 +1641,13 @@ class UM_Fields {
$output .= $this->field_label($label, $key, $data);
}
$use_keyword = apply_filters('um_multiselect_option_value', 0, $data['type'] );
$output .= '<div class="um-field-area">';
$output .= '<select multiple="multiple" name="'.$key.'[]" id="'.$key.'" data-maxsize="'. $max_selections . '" data-validate="'.$validate.'" data-key="'.$key.'" class="'.$this->get_class($key, $data, $class).'" style="width: 100%" data-placeholder="'.$placeholder.'">';
$output .= '<select multiple="multiple" name="'.$key.'[]" id="'.$key.'" data-maxsize="'. $max_selections . '" data-validate="'.$validate.'" data-key="'.$key.'" class="'.$this->get_class($key, $data, $class).' um-user-keyword_'.$use_keyword.'" style="width: 100%" data-placeholder="'.$placeholder.'">';
if ( isset($options) && $options == 'builtin'){
$options = $ultimatemember->builtin->get ( $filter );
}
@@ -1662,8 +1665,7 @@ class UM_Fields {
// add an empty option!
$output .= '<option value=""></option>';
$use_keyword = apply_filters('um_multiselect_option_value', 0, $data['type'] );
// add options
foreach( $options as $k => $v ) {
+8 -1
View File
@@ -83,8 +83,14 @@
$operator = 'LIKE';
}
if ( in_array( $ultimatemember->fields->get_field_type( $field ), array('checkbox','multiselect') ) ) {
$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 ( $value && $field != 'um_search' && $field != 'page_id' ) {
@@ -117,6 +123,7 @@
if ( count ($query_args['meta_query']) == 1 ) {
unset( $query_args['meta_query'] );
}
return $query_args;
}