- add sorting options in admin area

This commit is contained in:
ashubawork
2023-05-24 13:31:57 +03:00
parent 781d21d329
commit 65a25da89c
4 changed files with 63 additions and 11 deletions
@@ -250,6 +250,21 @@ jQuery(document).ready( function() {
'<a href="javascript:void(0);" class="um-select-delete">' + wp.i18n.__( 'Remove', 'ultimate-member' ) + '</a>' +
'</span>' +
'<span class="um-field-wrapper um-custom-order-fields"><label>' + wp.i18n.__( 'Meta key', 'ultimate-member' ) + ':&nbsp;<input type="text" name="meta_key" /></label></span>' +
'<span class="um-field-wrapper um-custom-order-fields"><label>' + wp.i18n.__( 'Data type', 'ultimate-member' ) + ':&nbsp;</label><select name="data_type" />' +
'<option value="CHAR">' + wp.i18n.__( 'CHAR', 'ultimate-member' ) + '</option>' +
'<option value="NUMERIC">' + wp.i18n.__( 'NUMERIC', 'ultimate-member' ) + '</option>' +
'<option value="BINARY">' + wp.i18n.__( 'BINARY', 'ultimate-member' ) + '</option>' +
'<option value="DATE">' + wp.i18n.__( 'DATE', 'ultimate-member' ) + '</option>' +
'<option value="DATETIME">' + wp.i18n.__( 'DATETIME', 'ultimate-member' ) + '</option>' +
'<option value="DECIMAL">' + wp.i18n.__( 'DECIMAL', 'ultimate-member' ) + '</option>' +
'<option value="SIGNED">' + wp.i18n.__( 'SIGNED', 'ultimate-member' ) + '</option>' +
'<option value="TIME">' + wp.i18n.__( 'TIME', 'ultimate-member' ) + '</option>' +
'<option value="UNSIGNED">' + wp.i18n.__( 'UNSIGNED', 'ultimate-member' ) + '</option>' +
'</select></span>' +
'<span class="um-field-wrapper um-custom-order-fields"><label>' + wp.i18n.__( 'Order', 'ultimate-member' ) + ':&nbsp;</label><select name="data_type" />' +
'<option value="ASC">' + wp.i18n.__( 'ASC', 'ultimate-member' ) + '</option>' +
'<option value="DESC">' + wp.i18n.__( 'DESC', 'ultimate-member' ) + '</option>' +
'</select></span>' +
'<span class="um-field-wrapper um-custom-order-fields"><label>' + wp.i18n.__( 'Label', 'ultimate-member' ) + ':&nbsp;<input type="text" name="label" /></label></span>' +
'</li>';
list.append( html );
+6
View File
@@ -873,6 +873,12 @@ if ( ! class_exists( 'um\admin\Admin' ) ) {
if ( isset( $item['label'] ) ) {
$item['label'] = sanitize_text_field( $item['label'] );
}
if ( isset( $item['order'] ) ) {
$item['order'] = sanitize_text_field( $item['order'] );
}
if ( isset( $item['data_type'] ) ) {
$item['data_type'] = sanitize_text_field( $item['data_type'] );
}
return $item;
} else {
+25 -6
View File
@@ -1592,12 +1592,16 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
$other_key = '';
$other_label = '';
$other_type = '';
$other_order = '';
if ( is_array( $value ) ) {
$keys = array_keys( $value );
$other_key = $keys[0];
$labels = array_values( $value );
$other_label = $labels[0];
$other_type = $value['type'];
$other_order = $value['order'];
} else {
if ( ! in_array( $value, array_keys( $field_data['options'] ) ) ) {
continue;
@@ -1621,12 +1625,27 @@ if ( ! class_exists( 'um\admin\core\Admin_Forms' ) ) {
if ( $sorting ) {
$html .= '<span class="um-field-icon"><i class="um-faicon-sort"></i></span>';
}
$html .= "<span class=\"um-field-wrapper\">
<select $id_attr $name_attr $class_attr $data_attr>$options</select></span>
<span class=\"um-field-control\"><a href=\"javascript:void(0);\" class=\"um-select-delete\">" . __( 'Remove', 'ultimate-member' ) . "</a></span>
<span class=\"um-field-wrapper um-custom-order-fields\"><label>" . __( 'Meta key', 'ultimate-member' ) . ":&nbsp;<input type=\"text\" name=\"um_metadata[_um_sorting_fields][other_data][" . $k . "][meta_key]\" value=\"" . esc_attr( $other_key ) . "\" /></label></span>
<span class=\"um-field-wrapper um-custom-order-fields\"><label>" . __( 'Label', 'ultimate-member' ) . ":&nbsp;<input type=\"text\" name=\"um_metadata[_um_sorting_fields][other_data][" . $k . "][label]\" value=\"" . esc_attr( $other_label ) . "\" /></label></span>
</li>";
$html .= '<span class="um-field-wrapper">
<select ' . $id_attr . ' ' . $name_attr . ' ' . $class_attr . ' ' . $data_attr . '>' . $options . '</select></span>
<span class="um-field-control"><a href="javascript:void(0);" class="um-select-delete">' . __( 'Remove', 'ultimate-member' ) . '</a></span>
<span class="um-field-wrapper um-custom-order-fields"><label>' . __( 'Meta key', 'ultimate-member' ) . ':&nbsp;<input type="text" name="um_metadata[_um_sorting_fields][other_data][' . $k . '][meta_key]" value="' . esc_attr( $other_key ) . '" /></label></span>
<span class="um-field-wrapper um-custom-order-fields"><label>' . __( 'Data type', 'ultimate-member' ) . ':&nbsp;</label><select name="um_metadata[_um_sorting_fields][other_data][' . $k . '][data_type]" />
<option value="CHAR" ' . selected( $other_type, 'CHAR' ) . '>' . __( 'CHAR', 'ultimate-member' ) . '</option>
<option value="NUMERIC" ' . selected( $other_type, 'NUMERIC' ) . '>' . __( 'NUMERIC', 'ultimate-member' ) . '</option>
<option value="BINARY" ' . selected( $other_type, 'BINARY' ) . '>' . __( 'BINARY', 'ultimate-member' ) . '</option>
<option value="DATE" ' . selected( $other_type, 'DATE' ) . '>' . __( 'DATE', 'ultimate-member' ) . '</option>
<option value="DATETIME" ' . selected( $other_type, 'DATETIME' ) . '>' . __( 'DATETIME', 'ultimate-member' ) . '</option>
<option value="DECIMAL" ' . selected( $other_type, 'DECIMAL' ) . '>' . __( 'DECIMAL', 'ultimate-member' ) . '</option>
<option value="SIGNED" ' . selected( $other_type, 'SIGNED' ) . '>' . __( 'SIGNED', 'ultimate-member' ) . '</option>
<option value="TIME" ' . selected( $other_type, 'TIME' ) . '>' . __( 'TIME', 'ultimate-member' ) . '</option>
<option value="UNSIGNED" ' . selected( $other_type, 'UNSIGNED' ) . '>' . __( 'UNSIGNED', 'ultimate-member' ) . '</option>
</select></span>
<span class="um-field-wrapper um-custom-order-fields"><label>' . __( 'Order', 'ultimate-member' ) . ':&nbsp;</label><select name="um_metadata[_um_sorting_fields][other_data][' . $k . '][order]" />
<option value="ASC" ' . selected( $other_order, 'ASC' ) . '>' . __( 'ASC', 'ultimate-member' ) . '</option>
<option value="DESC" ' . selected( $other_order, 'DESC' ) . '>' . __( 'DESC', 'ultimate-member' ) . '</option>
</select></span>
<span class="um-field-wrapper um-custom-order-fields"><label>' . __( 'Label', 'ultimate-member' ) . ':&nbsp;<input type="text" name="um_metadata[_um_sorting_fields][other_data][' . $k . '][label]" value="' . esc_attr( $other_label ) . '" /></label></span>
</li>';
}
} elseif ( ! empty( $field_data['show_default_number'] ) && is_numeric( $field_data['show_default_number'] ) && $field_data['show_default_number'] > 0 ) {
$i = 0;
+14 -2
View File
@@ -210,7 +210,6 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
if ( ! empty( $value ) && in_array( $key, array( '_um_view_types', '_um_roles', '_um_roles_can_search', '_um_roles_can_filter' ), true ) ) {
$value = array_keys( $value );
} elseif ( '_um_search_filters' === $key ) {
$temp_value = array();
if ( ! empty( $value ) ) {
@@ -264,8 +263,17 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
if ( ! empty( $other_data[ $k ]['label'] ) ) {
$metalabel = wp_strip_all_tags( $other_data[ $k ]['label'] );
}
if ( ! empty( $other_data[ $k ]['data_type'] ) ) {
$data_type = sanitize_text_field( $other_data[ $k ]['data_type'] );
}
if ( ! empty( $other_data[ $k ]['order'] ) ) {
$order = sanitize_text_field( $other_data[ $k ]['order'] );
}
$row = array(
$metakey => ! empty( $metalabel ) ? $metalabel : $metakey,
$metakey => $metakey,
'label' => ! empty( $metalabel ) ? $metalabel : $metakey,
'type' => ! empty( $data_type ) ? $data_type : '',
'order' => ! empty( $order ) ? $order : '',
);
}
}
@@ -275,6 +283,10 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
$value = sanitize_text_field( $value );
} elseif ( '_um_sortby_custom_label' === $key ) {
$value = wp_strip_all_tags( $value );
} elseif ( '_um_sortby_custom_type' === $key ) {
$value = sanitize_text_field( $value );
} elseif ( '_um_sortby_custom_order' === $key ) {
$value = sanitize_text_field( $value );
}
}