0 ) { $user_group_table = _groups_get_tablename( 'user_group' ); $group_ids = implode( ',', esc_sql( $group_ids ) ); $conjunctive = !empty( groups_sanitize_request( 'filter_groups_conjunctive' ) ); if ( !$conjunctive ) { $user_query->query_where .= " AND $wpdb->users.ID IN ( SELECT DISTINCT user_id FROM $user_group_table WHERE group_id IN ( $group_ids ) ) "; } else { $user_query->query_where .= " AND $wpdb->users.ID IN ( " . "SELECT user_id FROM ( " . "SELECT user_id, COUNT( group_id ) AS n FROM $user_group_table WHERE group_id IN ( $group_ids ) GROUP BY user_id " . ") group_counts WHERE n = " . intval( $n ) . ") "; } } } } return $user_query; } /** * Enqueue scripts the group-actions. */ public static function admin_enqueue_scripts() { global $pagenow; if ( ( $pagenow == 'users.php' ) && empty( groups_sanitize_get( 'page' ) ) ) { Groups_UIE::enqueue( 'select' ); wp_enqueue_style( 'groups_admin_user' ); } } /** * Adds the group add/remove buttons after the last action box. */ public static function admin_head() { global $pagenow; if ( ( $pagenow == 'users.php' ) && empty( groups_sanitize_get( 'page' ) ) ) { // @since 2.18.0 moved to groups_admin_user.css } } /** * Renders group actions in the users table's extra_tablenav(). */ public static function restrict_manage_users() { global $pagenow, $wpdb, $groups_select_user_groups_index; // We don't handle multiple instances so don't render another. if ( !isset( $groups_select_user_groups_index ) ) { $groups_select_user_groups_index = 0; } else { return ''; } $output = ''; if ( ( $pagenow == 'users.php' ) && empty( groups_sanitize_get( 'page' ) ) ) { // groups select $groups_table = _groups_get_tablename( 'group' ); $groups = apply_filters( 'groups_admin_users_restrict_manage_users_groups', $wpdb->get_results( "SELECT * FROM $groups_table ORDER BY name" ) ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared $groups_select = ''; if ( $groups ) { $groups_select = sprintf( ''; } // group bulk actions added through extra_tablenav() $box = '