From 01630c9385ab877eea3b3e2491261131b2f50b98 Mon Sep 17 00:00:00 2001 From: yura_nalivaiko Date: Thu, 31 May 2018 13:14:21 +0300 Subject: [PATCH] - fixed problem with multisite; - fixed problem with members directory search; - fixed admin bar; --- includes/core/class-access.php | 7 ++++--- includes/core/class-members.php | 25 ++++++++++++++++++++----- includes/core/um-actions-wpadmin.php | 7 ++----- includes/core/um-filters-members.php | 26 ++++++++++++++++---------- 4 files changed, 42 insertions(+), 23 deletions(-) diff --git a/includes/core/class-access.php b/includes/core/class-access.php index 6223c552..0bd198a6 100644 --- a/includes/core/class-access.php +++ b/includes/core/class-access.php @@ -244,9 +244,10 @@ if ( ! class_exists( 'um\core\Access' ) ) { global $post; $curr = UM()->permalinks()->get_current_url(); + $ms_empty_role_access = is_multisite() && is_user_logged_in() && !UM()->roles()->get_priority_user_role( um_user('ID') ); if ( is_front_page() ) { - if ( is_user_logged_in() ) { + if ( is_user_logged_in() && !$ms_empty_role_access ) { $user_default_homepage = um_user( 'default_homepage' ); if ( ! empty( $user_default_homepage ) ) @@ -300,7 +301,7 @@ if ( ! class_exists( 'um\core\Access' ) ) { } } } elseif ( is_category() ) { - if ( ! is_user_logged_in() ) { + if ( ! is_user_logged_in() || $ms_empty_role_access ) { $access = UM()->options()->get( 'accessible' ); @@ -324,7 +325,7 @@ if ( ! class_exists( 'um\core\Access' ) ) { $access = UM()->options()->get( 'accessible' ); - if ( $access == 2 && ! is_user_logged_in() ) { + if ( $access == 2 && ( !is_user_logged_in() || $ms_empty_role_access ) ) { //build exclude URLs pages $redirects = array(); diff --git a/includes/core/class-members.php b/includes/core/class-members.php index 98f3ecea..15d83c16 100644 --- a/includes/core/class-members.php +++ b/includes/core/class-members.php @@ -88,14 +88,14 @@ if ( ! class_exists( 'um\core\Members' ) ) { return $string; } - - /** - * Show filter + /** + * Prepare filter data * * @param $filter + * @return array */ - function show_filter( $filter ) { - $fields = UM()->builtin()->all_user_fields; + function prepare_filter( $filter ) { + $fields = UM()->builtin()->all_user_fields; if ( isset( $fields[ $filter ] ) ) { $attrs = $fields[ $filter ]; @@ -222,6 +222,21 @@ if ( ! class_exists( 'um\core\Members' ) ) { $attrs = apply_filters( 'um_search_select_fields', $attrs ); } + return compact( 'type', 'attrs' ); + } + + /** + * Show filter + * + * @param $filter + */ + function show_filter( $filter ) { + /** + * @var $type + * @var $attrs + */ + extract( $this->prepare_filter( $filter ) ); + switch ( $type ) { case 'select': diff --git a/includes/core/um-actions-wpadmin.php b/includes/core/um-actions-wpadmin.php index 1cc06348..ace80694 100644 --- a/includes/core/um-actions-wpadmin.php +++ b/includes/core/um-actions-wpadmin.php @@ -22,11 +22,8 @@ add_action( 'init', 'um_block_wpadmin_by_user_role', 99 ); * @return bool */ function um_control_admin_bar( $content ) { - if ( is_user_logged_in() ) { - if ( um_user( 'can_not_see_adminbar' ) ) { - return false; - } - return true; + if ( is_user_logged_in() && um_user( 'can_not_see_adminbar' ) ) { + return false; } return $content; diff --git a/includes/core/um-filters-members.php b/includes/core/um-filters-members.php index e4ea86df..1ec1e149 100644 --- a/includes/core/um-filters-members.php +++ b/includes/core/um-filters-members.php @@ -141,19 +141,25 @@ function um_add_search_to_query( $query_args, $args ){ 'value' => trim( $value ), 'compare' => '=', ), - array( - 'key' => $field, - 'value' => trim( $value ), - 'compare' => 'LIKE', - ), - array( - 'key' => $field, - 'value' => trim( $serialize_value ), - 'compare' => 'LIKE', - ), 'relation' => 'OR', ); + $filter_data = UM()->members()->prepare_filter( $field ); + if( $filter_data['type'] != 'select' ) { + $field_query = array_merge( $field_query, array( + array( + 'key' => $field, + 'value' => trim( $value ), + 'compare' => 'LIKE', + ), + array( + 'key' => $field, + 'value' => trim( $serialize_value ), + 'compare' => 'LIKE', + ), + 'relation' => 'OR', + ) ); + } /** * UM hook *