BP_Groups_Member::get_user_memberships( int $user_id, array $args = array() )
Gets memberships of a user for purposes of a personal data export.
Description
Parameters
- $user_id
-
(Required) ID of the user.
- $args
-
(Optional) Array of optional arguments.
- 'page'
(int) Page of memberships being requested. Default 1. - 'per_page'
(int) Memberships to return per page. Default 20. - 'type'
(string) Membership type being requested. Accepts 'membership', 'pending_request', 'pending_received_invitation', 'pending_sent_invitation'. Default 'membership'.
Default value: array()
- 'page'
Return
(array)
Source
File: bp-groups/classes/class-bp-groups-member.php
public static function get_user_memberships( $user_id, $args = array() ) {
global $wpdb;
$bp = buddypress();
$r = array_merge( array(
'page' => 1,
'per_page' => 20,
'type' => 'membership',
), $args );
$sql = array(
'select' => 'SELECT *',
'from' => "FROM {$bp->groups->table_name_members}",
'where' => '',
'limits' => '',
);
switch ( $r['type'] ) {
case 'pending_request' :
return groups_get_requests( array(
'user_id' => $user_id,
'page' => $r['page'],
'per_page' => $r['per_page'],
) );
break;
case 'pending_received_invitation' :
return groups_get_invites( array(
'user_id' => $user_id,
'page' => $r['page'],
'per_page' => $r['per_page'],
) );
break;
case 'pending_sent_invitation' :
return groups_get_invites( array(
'inviter_id' => $user_id,
'page' => $r['page'],
'per_page' => $r['per_page'],
) );
break;
case 'membership' :
default :
$sql['where'] = $wpdb->prepare( "user_id = %d AND is_confirmed = 1", $user_id );
break;
}
if ( $r['page'] && $r['per_page'] ) {
$sql['limits'] = $wpdb->prepare( "LIMIT %d, %d", ( $r['page'] - 1 ) * $r['per_page'], $r['per_page'] );
}
$memberships = $wpdb->get_results( "{$sql['select']} {$sql['from']} WHERE {$sql['where']} {$sql['limits']}" );
foreach ( $memberships as &$membership ) {
$membership->id = (int) $membership->id;
$membership->group_id = (int) $membership->group_id;
$membership->user_id = (int) $membership->user_id;
$membership->inviter_id = (int) $membership->inviter_id;
$membership->is_admin = (int) $membership->is_admin;
$membership->is_mod = (int) $membership->is_mod;
$membership->is_banned = (int) $membership->is_banned;
$membership->is_confirmed = (int) $membership->is_confirmed;
$membership->invite_sent = (int) $membership->invite_sent;
}
return $memberships;
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 4.0.0 | BuddyPress 4.0.0 |
| BuddyBoss 1.3.5 | 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.