From bae9d7eacc8a83b66fe9e60bfb256562dbc53d2b Mon Sep 17 00:00:00 2001 From: Champ Camba Date: Mon, 30 Jul 2018 19:53:01 +0800 Subject: [PATCH 1/2] Apply member query session when orderby is set to random only --- includes/core/um-filters-members.php | 43 +++++++++++++++------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/includes/core/um-filters-members.php b/includes/core/um-filters-members.php index 2a463631..52285d33 100644 --- a/includes/core/um-filters-members.php +++ b/includes/core/um-filters-members.php @@ -450,30 +450,33 @@ add_filter( 'um_modify_sortby_parameter', 'um_sortby_last_login', 100, 2 ); * @return mixed */ function um_modify_sortby_randomly( $query ) { - if( um_is_session_started() === false ){ - @session_start(); - } - // Reset seed on load of initial - if( ! isset( $_REQUEST['members_page'] ) || $_REQUEST['members_page'] == 0 || $_REQUEST['members_page'] == 1 ) { - if( isset( $_SESSION['seed'] ) ) { - unset( $_SESSION['seed'] ); + if( 'random' == $query->query_vars["orderby"] ) { + + if( um_is_session_started() === false ){ + @session_start(); } - } - // Get seed from session variable if it exists - $seed = false; - if( isset( $_SESSION['seed'] ) ) { - $seed = $_SESSION['seed']; - } - - // Set new seed if none exists - if ( ! $seed ) { - $seed = rand(); - $_SESSION['seed'] = $seed; - } + // Reset seed on load of initial + if( ! isset( $_REQUEST['members_page'] ) || $_REQUEST['members_page'] == 0 || $_REQUEST['members_page'] == 1 ) { + if( isset( $_SESSION['seed'] ) ) { + unset( $_SESSION['seed'] ); + } + } - if($query->query_vars["orderby"] == 'random') { + // Get seed from session variable if it exists + $seed = false; + if( isset( $_SESSION['seed'] ) ) { + $seed = $_SESSION['seed']; + } + + // Set new seed if none exists + if ( ! $seed ) { + $seed = rand(); + $_SESSION['seed'] = $seed; + } + + $query->query_orderby = 'ORDER by RAND('. $seed.')'; } From b598acbe4ca3e0bc627c32f3e87492f8e181a6eb Mon Sep 17 00:00:00 2001 From: Champ Camba Date: Mon, 30 Jul 2018 19:55:33 +0800 Subject: [PATCH 2/2] Remove notices --- includes/um-short-functions.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/includes/um-short-functions.php b/includes/um-short-functions.php index 6906efee..983e976d 100644 --- a/includes/um-short-functions.php +++ b/includes/um-short-functions.php @@ -1314,7 +1314,12 @@ function um_can_view_profile( $user_id ) { um_fetch_user( get_current_user_id() ); if ( um_user( 'can_view_roles' ) && $user_id != get_current_user_id() ) { - if ( count( array_intersect( UM()->roles()->get_all_user_roles( $user_id ), um_user( 'can_view_roles' ) ) ) <= 0 ) { + + $can_view_roles = um_user( 'can_view_roles' ); + + if( ! is_array( $can_view_roles ) ) $can_view_roles = array(); + + if ( count( array_intersect( UM()->roles()->get_all_user_roles( $user_id ), $can_view_roles ) ) <= 0 ) { um_fetch_user( $temp_id ); return false; }