diff --git a/includes/admin/core/packages/2.1.3-beta3/functions.php b/includes/admin/core/packages/2.1.3-beta3/functions.php index c463e453..c86759b2 100644 --- a/includes/admin/core/packages/2.1.3-beta3/functions.php +++ b/includes/admin/core/packages/2.1.3-beta3/functions.php @@ -59,7 +59,7 @@ function um_upgrade_metadata_per_user213beta3() { if ( ! isset( $users_map[ $metadatarow['user_id'] ] ) ) { $users_map[ $metadatarow['user_id'] ] = array( 'account_status' => 'approved', - 'hide_in_members' => false, + 'hide_in_members' => UM()->member_directory()->get_hide_in_members_default(), 'profile_photo' => false, 'cover_photo' => false, 'verified' => false, @@ -72,11 +72,13 @@ function um_upgrade_metadata_per_user213beta3() { break; case 'hide_in_members': - $hide_in_members = false; + $hide_in_members = UM()->member_directory()->get_hide_in_members_default(); if ( ! empty( $metadatarow['meta_value'] ) ) { if ( $metadatarow['meta_value'] == 'Yes' || $metadatarow['meta_value'] == __( 'Yes', 'ultimate-member' ) || $metadatarow['meta_value'] == serialize( array( 'Yes' ) ) || $metadatarow['meta_value'] == serialize( array( __( 'Yes', 'ultimate-member' ) ) ) ) { $hide_in_members = true; + } else { + $hide_in_members = false; } } diff --git a/includes/class-init.php b/includes/class-init.php index 784a8ee6..d71cb4e0 100644 --- a/includes/class-init.php +++ b/includes/class-init.php @@ -1464,8 +1464,6 @@ if ( ! class_exists( 'UM' ) ) { require_once 'core/um-filters-avatars.php'; require_once 'core/um-filters-user.php'; - //require_once 'core/um-filters-members.php'; - require_once 'core/um-filters-profile.php'; require_once 'core/um-filters-account.php'; require_once 'core/um-filters-misc.php'; diff --git a/includes/core/class-builtin.php b/includes/core/class-builtin.php index 52340bdd..903c6ab8 100644 --- a/includes/core/class-builtin.php +++ b/includes/core/class-builtin.php @@ -1123,18 +1123,21 @@ if ( ! class_exists( 'um\core\Builtin' ) ) { ), 'hide_in_members' => array( - 'title' => __('Hide my profile from directory','ultimate-member'), - 'metakey' => 'hide_in_members', - 'type' => 'radio', - 'label' => __('Hide my profile from directory','ultimate-member'), - 'help' => __('Here you can hide yourself from appearing in public directory','ultimate-member'), - 'required' => 0, - 'public' => 1, - 'editable' => 1, - 'default' => 'No', - 'options' => array( 'No' => __('No','ultimate-member'), 'Yes' => __('Yes','ultimate-member') ), - 'account_only' => true, - 'required_opt' => array( 'members_page', 1 ), + 'title' => __( 'Hide my profile from directory', 'ultimate-member' ), + 'metakey' => 'hide_in_members', + 'type' => 'radio', + 'label' => __( 'Hide my profile from directory', 'ultimate-member' ), + 'help' => __( 'Here you can hide yourself from appearing in public directory', 'ultimate-member' ), + 'required' => 0, + 'public' => 1, + 'editable' => 1, + 'default' => UM()->member_directory()->get_hide_in_members_default() ? 'Yes' : 'No', + 'options' => array( + 'No' => __( 'No', 'ultimate-member' ), + 'Yes' => __( 'Yes', 'ultimate-member' ), + ), + 'account_only' => true, + 'required_opt' => array( 'members_page', 1 ), ), 'delete_account' => array( diff --git a/includes/core/class-member-directory-meta.php b/includes/core/class-member-directory-meta.php index 916df06c..55702f36 100644 --- a/includes/core/class-member-directory-meta.php +++ b/includes/core/class-member-directory-meta.php @@ -667,7 +667,7 @@ if ( ! class_exists( 'um\core\Member_Directory_Meta' ) ) { $_SESSION['um_member_directory_seed'] = $seed; } - $this->sql_order = 'ORDER by RAND(' . $seed . ')'; + $this->sql_order = 'ORDER BY RAND(' . $seed . ')'; } else { diff --git a/includes/core/class-member-directory.php b/includes/core/class-member-directory.php index 34a4ed3f..5e1056cd 100644 --- a/includes/core/class-member-directory.php +++ b/includes/core/class-member-directory.php @@ -98,6 +98,15 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { } + /** + * @return bool + */ + function get_hide_in_members_default() { + $default = apply_filters( 'um_member_directory_hide_in_members_default', false ); + return $default; + } + + /** * Getting member directory post ID via hash * Hash is unique attr, which we use visible at frontend @@ -1404,11 +1413,15 @@ if ( ! class_exists( 'um\core\Member_Directory' ) ) { $custom_fields[] = $field_key; } - $sql['join'] = preg_replace( - '/(' . $meta_join_for_search . ' ON \( ' . $wpdb->users . '\.ID = ' . $meta_join_for_search . '\.user_id )(\))/im', - "$1 AND " . $meta_join_for_search . ".meta_key IN( '" . implode( "','", $custom_fields ) . "' ) $2", - $sql['join'] - ); + $custom_fields = apply_filters( 'um_general_search_custom_fields', $custom_fields ); + + if ( ! empty( $custom_fields ) ) { + $sql['join'] = preg_replace( + '/(' . $meta_join_for_search . ' ON \( ' . $wpdb->users . '\.ID = ' . $meta_join_for_search . '\.user_id )(\))/im', + "$1 AND " . $meta_join_for_search . ".meta_key IN( '" . implode( "','", $custom_fields ) . "' ) $2", + $sql['join'] + ); + } } // Add OR instead AND to search in WP core fields user_email, user_login, user_display_name diff --git a/includes/core/class-user.php b/includes/core/class-user.php index 922d9276..a443a644 100644 --- a/includes/core/class-user.php +++ b/includes/core/class-user.php @@ -120,7 +120,7 @@ if ( ! class_exists( 'um\core\User' ) ) { if ( empty( $md_data ) ) { $md_data = array( 'account_status' => 'approved', - 'hide_in_members' => false, + 'hide_in_members' => UM()->member_directory()->get_hide_in_members_default(), 'profile_photo' => false, 'cover_photo' => false, 'verified' => false, @@ -132,7 +132,7 @@ if ( ! class_exists( 'um\core\User' ) ) { $md_data['account_status'] = 'approved'; break; case 'hide_in_members': - $md_data['hide_in_members'] = false; + $md_data['hide_in_members'] = UM()->member_directory()->get_hide_in_members_default(); break; case 'synced_gravatar_hashed_id': if ( UM()->options()->get( 'use_gravatars' ) ) { @@ -194,7 +194,7 @@ if ( ! class_exists( 'um\core\User' ) ) { if ( empty( $md_data ) ) { $md_data = array( 'account_status' => 'approved', - 'hide_in_members' => false, + 'hide_in_members' => UM()->member_directory()->get_hide_in_members_default(), 'profile_photo' => false, 'cover_photo' => false, 'verified' => false, @@ -207,11 +207,13 @@ if ( ! class_exists( 'um\core\User' ) ) { break; case 'hide_in_members': - $hide_in_members = false; + $hide_in_members = UM()->member_directory()->get_hide_in_members_default(); if ( ! empty( $_meta_value ) ) { if ( $_meta_value == 'Yes' || $_meta_value == __( 'Yes', 'ultimate-member' ) || $_meta_value == serialize( array( 'Yes' ) ) || $_meta_value == serialize( array( __( 'Yes', 'ultimate-member' ) ) ) ) { $hide_in_members = true; + } else { + $hide_in_members = false; } } diff --git a/includes/core/um-filters-members.php b/includes/core/um-filters-members.php deleted file mode 100644 index 60ac9da6..00000000 --- a/includes/core/um-filters-members.php +++ /dev/null @@ -1,73 +0,0 @@ -roles()->um_user_can( 'can_edit_everyone' ) ) { - - $query_args['meta_query'][] = array( - 'key' => 'account_status', - 'value' => 'approved', - 'compare' => '=' - ); - - } - - if ( UM()->options()->get( 'account_hide_in_directory' ) ) { - if ( ! UM()->roles()->um_user_can( 'can_access_private_profile' ) ) { - $query_args['meta_query'][] = array( - "relation" => "OR", - array( - 'key' => 'hide_in_members', - 'value' => '', - 'compare' => 'NOT EXISTS' - ), - array( - "relation" => "AND", - array( - 'key' => 'hide_in_members', - 'value' => __('Yes','ultimate-member'), - 'compare' => 'NOT LIKE' - ), - array( - 'key' => 'hide_in_members', - 'value' => 'Yes', - 'compare' => 'NOT LIKE' - ), - ), - ); - } - } - - $roles = um_user( 'can_view_roles' ); - if ( UM()->roles()->um_user_can( 'can_view_all' ) && ! empty( $roles ) ) { - - $roles = maybe_unserialize( $roles ); - - if ( ! empty( $roles ) ) { - if ( ! empty( $query_args['role__in'] ) ) { - $roles_intersect = array_intersect( $query_args['role__in'], $roles ); - if( ! empty( $roles_intersect ) ){ - $query_args['role__in'] = $roles_intersect; - } - } else { - $query_args['role__in'] = $roles; - } - } - - } - - return $query_args; -} -//add_filter( 'um_prepare_user_query_args', 'um_remove_special_users_from_list', 99, 2 ); \ No newline at end of file