From bae9d7eacc8a83b66fe9e60bfb256562dbc53d2b Mon Sep 17 00:00:00 2001 From: Champ Camba Date: Mon, 30 Jul 2018 19:53:01 +0800 Subject: [PATCH] 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.')'; }