groups_join_group( int $group_id, int $user_id )
Add a user to a group.
Description
Parameters
- $group_id
-
(Required) ID of the group.
- $user_id
-
(Optional) ID of the user. Defaults to the currently logged-in user.
Return
(bool) True on success, false on failure.
Source
File: bp-groups/bp-groups-functions.php
function groups_join_group( $group_id, $user_id = 0 ) {
if ( empty( $user_id ) )
$user_id = bp_loggedin_user_id();
// Check if the user has an outstanding invite. If so, delete it.
if ( groups_check_user_has_invite( $user_id, $group_id ) )
groups_delete_invite( $user_id, $group_id );
// Check if the user has an outstanding request. If so, delete it.
if ( groups_check_for_membership_request( $user_id, $group_id ) )
groups_delete_membership_request( null, $user_id, $group_id );
// User is already a member, just return true.
if ( groups_is_user_member( $user_id, $group_id ) )
return true;
$new_member = new BP_Groups_Member;
$new_member->group_id = $group_id;
$new_member->user_id = $user_id;
$new_member->inviter_id = 0;
$new_member->is_admin = 0;
$new_member->user_title = '';
$new_member->date_modified = bp_core_current_time();
$new_member->is_confirmed = 1;
if ( !$new_member->save() )
return false;
$bp = buddypress();
if ( !isset( $bp->groups->current_group ) || !$bp->groups->current_group || $group_id != $bp->groups->current_group->id )
$group = groups_get_group( $group_id );
else
$group = $bp->groups->current_group;
// Record this in activity feeds.
if ( bp_is_active( 'activity' ) ) {
groups_record_activity( array(
'type' => 'joined_group',
'item_id' => $group_id,
'user_id' => $user_id,
) );
}
/**
* Fires after a user joins a group.
*
* @since BuddyPress 1.0.0
*
* @param int $group_id ID of the group.
* @param int $user_id ID of the user joining the group.
*/
do_action( 'groups_join_group', $group_id, $user_id );
return true;
}
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.