friends_get_friends_invite_list( int $user_id, int $group_id )

Get a list of friends that a user can invite into this group.

Description

Excludes friends that are already in the group, and banned friends if the user is not a group admin.

Parameters

$user_id

(Required) User ID whose friends to see can be invited. Default: ID of the logged-in user.

$group_id

(Required) Group to check possible invitations against.

Return

(mixed) False if no friends, array of users if friends.

Source

File: bp-friends/bp-friends-functions.php

556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
function friends_get_friends_invite_list( $user_id = 0, $group_id = 0 ) {
 
    // Default to logged in user id.
    if ( empty( $user_id ) )
        $user_id = bp_loggedin_user_id();
 
    // Only group admins can invited previously banned users.
    $user_is_admin = (bool) groups_is_user_admin( $user_id, $group_id );
 
    // Assume no friends.
    $friends = array();
 
    /**
     * Filters default arguments for list of friends a user can invite into this group.
     *
     * @since BuddyPress 1.5.4
     *
     * @param array $value Array of default parameters for invite list.
     */
    $args = apply_filters( 'bp_friends_pre_get_invite_list', array(
        'user_id'  => $user_id,
        'type'     => 'alphabetical',
        'per_page' => 0
    ) );
 
    // User has friends.
    if ( bp_has_members( $args ) ) {
 
        /**
         * Loop through all friends and try to add them to the invitation list.
         *
         * Exclude friends that:
         *     1. are already members of the group
         *     2. are banned from this group if the current user is also not a
         *        group admin.
         */
        while ( bp_members() ) :
 
            // Load the member.
            bp_the_member();
 
            // Get the user ID of the friend.
            $friend_user_id = bp_get_member_user_id();
 
            // Skip friend if already in the group.
            if ( groups_is_user_member( $friend_user_id, $group_id ) )
                continue;
 
            // Skip friend if not group admin and user banned from group.
            if ( ( false === $user_is_admin ) && groups_is_user_banned( $friend_user_id, $group_id ) )
                continue;
 
            // Friend is safe, so add it to the array of possible friends.
            $friends[] = array(
                'id'        => $friend_user_id,
                'full_name' => bp_get_member_name()
            );
 
        endwhile;
    }
 
    // If no friends, explicitly set to false.
    if ( empty( $friends ) )
        $friends = false;
 
    /**
     * Filters the list of potential friends that can be invited to this group.
     *
     * @since BuddyPress 1.5.4
     *
     * @param array|bool $friends  Array friends available to invite or false for no friends.
     * @param int        $user_id  ID of the user checked for who they can invite.
     * @param int        $group_id ID of the group being checked on.
     */
    return apply_filters( 'bp_friends_get_invite_list', $friends, $user_id, $group_id );
}

Changelog

Changelog
Version Description
BuddyPress 1.0.0 Introduced.

Questions?

We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.