From 21ee54f29d9f459bc907fe291240a412c169498a Mon Sep 17 00:00:00 2001 From: Champ Camba Date: Mon, 17 Apr 2017 20:46:46 +0800 Subject: [PATCH] Fix search member directory fields --- core/um-members.php | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/core/um-members.php b/core/um-members.php index fe8093b9..d5c71f6f 100644 --- a/core/um-members.php +++ b/core/um-members.php @@ -142,15 +142,27 @@ class UM_Members { function um_search_select_fields( $attrs ) { global $ultimatemember; - $shortcode_roles = get_post_meta( $ultimatemember->shortcodes->form_id, '_um_roles' ); - $um_roles = $ultimatemember->query->get_roles( false ); - $attrs['options'] = array(); + if( strstr( $attrs['metakey'], 'role_') ){ - foreach ( $um_roles as $key=>$value ) { - if ( in_array( $key, $shortcode_roles[0] ) ) { - $attrs['options'][$key] = $value; - } + $shortcode_roles = get_post_meta( $ultimatemember->shortcodes->form_id, '_um_roles', true ); + $um_roles = $ultimatemember->query->get_roles( false ); + + if( ! empty( $shortcode_roles ) ){ // if no roles are selected or page is accessible by everyone + + $attrs['options'] = array(); + + if( ! is_array( $shortcode_roles ) ) { + $shortcode_roles = array(); + } + + foreach ( $um_roles as $key => $value ) { + if ( in_array( $key, $shortcode_roles ) ) { + $attrs['options'][ $key ] = $value; + } + } + } + } return $attrs;