mirror of
https://github.com/10h30/ultimatemember.git
synced 2026-07-13 11:46:27 +09:00
- added filter for default setting for Hide in Members;
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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 {
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
<?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
|
||||
|
||||
|
||||
/**
|
||||
* Remove users we do not need to show in directory
|
||||
*
|
||||
* @param $query_args
|
||||
* @param $args
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
function um_remove_special_users_from_list( $query_args, $args ) {
|
||||
extract( $args );
|
||||
|
||||
$query_args['meta_query']['relation'] = 'AND';
|
||||
|
||||
if ( ! UM()->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 );
|
||||
Reference in New Issue
Block a user