Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
01/04/2018 04:05:39 PM (7 years ago)
Author:
djpaul
Message:

Groups: add support to query for members from multiple groups.

Fixes #7573

Props r-a-y, dcavins

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-groups/classes/class-bp-group-member-query.php

    r11256 r11792  
    2525 *
    2626 * @since 1.8.0
     27 * @since 3.0.0 $group_id now supports multiple values.
    2728 *
    2829 * @param array $args  {
     
    3031 *     {@link BP_User_Query}, with the following additions:
    3132 *
    32  *     @type int    $group_id     ID of the group to limit results to.
    33  *     @type array  $group_role   Array of group roles to match ('member',
    34  *                                'mod', 'admin', 'banned').
    35  *                                Default: array( 'member' ).
    36  *     @type bool   $is_confirmed Whether to limit to confirmed members.
    37  *                                Default: true.
    38  *     @type string $type         Sort order. Accepts any value supported by
    39  *                                {@link BP_User_Query}, in addition to 'last_joined'
    40  *                                and 'first_joined'. Default: 'last_joined'.
     33 *     @type int|array|string $group_id     ID of the group to limit results to. Also accepts multiple values
     34 *                                          either as an array or as a comma-delimited string.
     35 *     @type array            $group_role   Array of group roles to match ('member', 'mod', 'admin', 'banned').
     36 *                                          Default: array( 'member' ).
     37 *     @type bool             $is_confirmed Whether to limit to confirmed members. Default: true.
     38 *     @type string           $type         Sort order. Accepts any value supported by {@link BP_User_Query}, in
     39 *                                          addition to 'last_joined' and 'first_joined'. Default: 'last_joined'.
    4140 * }
    4241 */
     
    138137
    139138        // Group id.
    140         $sql['where'][] = $wpdb->prepare( "group_id = %d", $this->query_vars['group_id'] );
     139        $group_ids = wp_parse_id_list( $this->query_vars['group_id'] );
     140        $group_ids = implode( ',', $group_ids );
     141        $sql['where'][] = "group_id IN ({$group_ids})";
    141142
    142143        // If is_confirmed.
Note: See TracChangeset for help on using the changeset viewer.