- hotfixes for member directory settings and frontend functionality;

This commit is contained in:
Nikita Sinelnikov
2021-07-02 17:36:01 +03:00
parent eb486684ac
commit 6feebac07f
6 changed files with 29 additions and 13 deletions
@@ -1099,6 +1099,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Metabox' ) ) {
delete_post_meta( $post_id, '_um_search_filters' );
delete_post_meta( $post_id, '_um_search_filters_gmt' );
delete_post_meta( $post_id, '_um_sorting_fields' );
//save metadata
$metadata = UM()->admin()->sanitize_member_directory_meta( $_POST['um_metadata'] );
foreach ( $metadata as $k => $v ) {
+4 -8
View File
@@ -188,12 +188,9 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
$wp_usermeta_option = get_option( 'um_usermeta_fields', array() );
$count = $wpdb->get_var(
$wpdb->prepare(
"SELECT COUNT(*)
FROM {$wpdb->usermeta}
WHERE meta_key IN (%s)",
implode( "','", $wp_usermeta_option )
)
"SELECT COUNT(*)
FROM {$wpdb->usermeta}
WHERE meta_key IN ('" . implode( "','", $wp_usermeta_option ) . "')"
);
wp_send_json_success( array( 'count' => $count ) );
@@ -211,9 +208,8 @@ if ( ! class_exists( 'um\admin\core\Admin_Settings' ) ) {
$wpdb->prepare(
"SELECT *
FROM {$wpdb->usermeta}
WHERE meta_key IN (%s)
WHERE meta_key IN ('" . implode( "','", $wp_usermeta_option ) . "')
LIMIT %d, %d",
implode( "','", $wp_usermeta_option ),
( absint( $_POST['page'] ) - 1 ) * $per_page,
$per_page
),
@@ -63,7 +63,7 @@ $_um_search_filters = get_post_meta( $post_id, '_um_search_filters', true ); ?>
'conditional' => array( '_um_filters', '=', 1 ),
'options' => UM()->member_directory()->filter_fields,
'add_text' => __( 'Add New Custom Field', 'ultimate-member' ),
'show_default_number' => 1,
'show_default_number' => 0,
'sorting' => true,
),
array(
@@ -46,7 +46,7 @@ $fields = array(
'value' => $_um_sorting_fields,
'options' => array_merge( UM()->member_directory()->sort_fields, array( 'other' => __( 'Other (Custom Field)', 'ultimate-member' ) ) ),
'add_text' => __( 'Add New Field', 'ultimate-member' ),
'show_default_number' => 1,
'show_default_number' => 0,
'conditional' => array( '_um_enable_sorting', '=', 1 ),
),
); ?>
@@ -611,7 +611,11 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
foreach ( $filter_query as $field => $value ) {
$field = sanitize_text_field( $field );
$value = sanitize_text_field( $value );
if ( is_array( $value ) ) {
$value = array_map( 'sanitize_text_field', $value );
} else {
$value = sanitize_text_field( $value );
}
$attrs = UM()->fields()->get_field( $field );
// skip private invisible fields
@@ -669,6 +673,10 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) {
$this->sql_order = " ORDER BY CAST( umm_sort.um_value AS {$custom_sort_type} ) {$order} ";
} elseif ( 'username' == $sortby ) {
$this->sql_order = " ORDER BY u.user_login {$order} ";
} elseif ( 'display_name' == $sortby ) {
$display_name = UM()->options()->get( 'display_name' );
+12 -2
View File
@@ -1255,7 +1255,12 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
}
}
if ( 'display_name' == $sortby ) {
if ( 'username' == $sortby ) {
$this->query_args['orderby'] = 'user_login';
$this->query_args['order'] = 'ASC';
} elseif ( 'display_name' == $sortby ) {
$display_name = UM()->options()->get( 'display_name' );
if ( $display_name == 'username' ) {
@@ -1539,6 +1544,7 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
$filter_query = array();
if ( ! empty( $directory_data['search_fields'] ) ) {
$search_filters = maybe_unserialize( $directory_data['search_fields'] );
if ( ! empty( $search_filters ) && is_array( $search_filters ) ) {
$filter_query = array_intersect_key( $_POST, array_flip( $search_filters ) );
}
@@ -1554,7 +1560,11 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) {
$this->is_search = true;
foreach ( $filter_query as $field => $value ) {
$field = sanitize_text_field( $field );
$value = sanitize_text_field( $value );
if ( is_array( $value ) ) {
$value = array_map( 'sanitize_text_field', $value );
} else {
$value = sanitize_text_field( $value );
}
$attrs = UM()->fields()->get_field( $field );
// skip private invisible fields