BP_Groups_Membership_Requests_Template::__construct( array $args = array() )
Constructor method.
Description
Parameters
- $args
-
(Optional)
- 'group_id'
(int) ID of the group whose membership requests are being queried. Default: current group id. - 'per_page'
(int) Number of records to return per page of results. Default: 10. - 'page'
(int) Page of results to show. Default: 1. - 'max'
(int) Max items to return. Default: false (show all)
Default value: array()
- 'group_id'
Source
File: bp-groups/classes/class-bp-groups-membership-requests-template.php
public function __construct( $args = array() ) {
// Backward compatibility with old method of passing arguments.
if ( ! is_array( $args ) || func_num_args() > 1 ) {
_deprecated_argument( __METHOD__, '2.0.0', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddyboss' ), __METHOD__, __FILE__ ) );
$old_args_keys = array(
0 => 'group_id',
1 => 'per_page',
2 => 'max',
);
$args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
}
$r = bp_parse_args( $args, array(
'page' => 1,
'per_page' => 10,
'page_arg' => 'mrpage',
'max' => false,
'type' => 'first_joined',
'group_id' => bp_get_current_group_id(),
), 'groups_membership_requests_template' );
$this->pag_arg = sanitize_key( $r['page_arg'] );
$this->pag_page = bp_sanitize_pagination_arg( $this->pag_arg, $r['page'] );
$this->pag_num = bp_sanitize_pagination_arg( 'num', $r['per_page'] );
$mquery = new BP_Group_Member_Query( array(
'group_id' => $r['group_id'],
'type' => $r['type'],
'per_page' => $this->pag_num,
'page' => $this->pag_page,
// These filters ensure we only get pending requests.
'is_confirmed' => false,
'inviter_id' => 0,
) );
$this->requests = array_values( $mquery->results );
$this->request_count = count( $this->requests );
// Compatibility with legacy format of request data objects.
foreach ( $this->requests as $rk => $rv ) {
// For legacy reasons, the 'id' property of each
// request must match the membership id, not the ID of
// the user (as it's returned by BP_Group_Member_Query).
$this->requests[ $rk ]->user_id = $rv->ID;
$this->requests[ $rk ]->id = $rv->membership_id;
// Miscellaneous values.
$this->requests[ $rk ]->group_id = $r['group_id'];
}
if ( empty( $r['max'] ) || ( $r['max'] >= (int) $mquery->total_users ) ) {
$this->total_request_count = (int) $mquery->total_users;
} else {
$this->total_request_count = (int) $r['max'];
}
if ( empty( $r['max'] ) || ( $r['max'] >= count( $this->requests ) ) ) {
$this->request_count = count( $this->requests );
} else {
$this->request_count = (int) $r['max'];
}
$this->pag_links = paginate_links( array(
'base' => add_query_arg( $this->pag_arg, '%#%' ),
'format' => '',
'total' => ceil( $this->total_request_count / $this->pag_num ),
'current' => $this->pag_page,
'prev_text' => '←',
'next_text' => '→',
'mid_size' => 1,
'add_args' => array(),
) );
}
Changelog
| Version | Description |
|---|---|
| BuddyPress 1.5.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.