From 4aadd3c9b1d3e268e32cae734c01226e3d75fa1e Mon Sep 17 00:00:00 2001 From: umesh Date: Wed, 21 May 2025 14:40:45 +0530 Subject: [PATCH] Added condition to check if is an array() for $role_data['capabilities']. Even if it set to false or true it will not give Fatal array for array_filter. --- src/wp-includes/class-wp-user-query.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/class-wp-user-query.php b/src/wp-includes/class-wp-user-query.php index fd35182eab9f5..5dd140dd851fe 100644 --- a/src/wp-includes/class-wp-user-query.php +++ b/src/wp-includes/class-wp-user-query.php @@ -482,7 +482,8 @@ public function prepare_query( $query = array() ) { $caps_with_roles = array(); foreach ( $available_roles as $role => $role_data ) { - $role_caps = array_keys( array_filter( $role_data['capabilities'] ) ); + + $role_caps = ( isset( $role_data['capabilities'] ) && is_array( $role_data['capabilities'] ) ) ? array_keys( array_filter( $role_data['capabilities'] ) ) : array(); foreach ( $capabilities as $cap ) { if ( in_array( $cap, $role_caps, true ) ) {