From c38f0945572bee14ecfc46bee93d85552242694f Mon Sep 17 00:00:00 2001 From: dbaranov Date: Fri, 1 Jun 2018 10:37:57 +0300 Subject: [PATCH] Fix method Profile->can_view_tab() --- includes/core/class-profile.php | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/includes/core/class-profile.php b/includes/core/class-profile.php index a857654a..ebfb4ec7 100644 --- a/includes/core/class-profile.php +++ b/includes/core/class-profile.php @@ -212,28 +212,36 @@ if ( ! class_exists( 'um\core\Profile' ) ) { * @return bool */ function can_view_tab( $tab ) { - $privacy = intval( UM()->options()->get( 'profile_tab_' . $tab . '_privacy' ) ); + + $target_id = UM()->user()->target_id; + if( empty($target_id) ) { + return true; + } + $can_view = false; + $privacy = intval( UM()->options()->get( 'profile_tab_' . $tab . '_privacy' ) ); switch( $privacy ) { + case 0: + $can_view = true; + break; + case 1: - $can_view = is_user_logged_in() ? false : true; + $can_view = ! is_user_logged_in(); break; case 2: - $can_view = is_user_logged_in() ? true : false; + $can_view = is_user_logged_in(); break; case 3: - $can_view = get_current_user_id() == um_user( 'ID' ) ? true : false; + $can_view = is_user_logged_in() && get_current_user_id() === $target_id; break; case 4: - $can_view = false; if( is_user_logged_in() ) { - $roles = UM()->options()->get( 'profile_tab_' . $tab . '_roles' ); - if( is_array( $roles ) - && in_array( UM()->user()->get_role(), $roles ) ) { + $roles = (array) UM()->options()->get( 'profile_tab_' . $tab . '_roles' ); + if( in_array( UM()->user()->get_role(), $roles ) ) { $can_view = true; } }