mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-13 11:46:27 +09:00
- hotfixes for member directory settings and frontend functionality;
This commit is contained in:
@@ -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 ) {
|
||||
|
||||
@@ -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' );
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user