BP_Invitation_Manager::add_request( array $args = array() )

Add a request to an item for a specific user, related to a specific class.

Description

Parameters

$args

(Optional) Array of arguments describing the invitation. All are optional.

  • 'user_id'
    (int) ID of the invited user.
  • 'inviter_id'
    (int) ID of the user who created the invitation.
  • 'class'
    (string) Name of the invitations class.
  • 'item_id'
    (int) ID associated with the invitation and class.
  • 'secondary_item_id'
    (int) secondary ID associated with the invitation and class.
  • 'type'
    (string) @TODO. < missing description.
  • 'content'
    (string) Extra information provided by the requester or inviter.
  • 'date_modified'
    (string) Date the invitation was last modified.
  • 'invite_sent'
    (int) Has the invitation been sent, or is it a draft invite?

Default value: array()

Return

(int|bool) ID of the newly created invitation on success, false on failure.

Source

File: bp-core/classes/class-bp-invitation-manager.php

228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
public function add_request( $args = array() ) {
 
    $r = bp_parse_args( $args, array(
        'user_id'           => 0,
        'inviter_id'        => 0,
        'invitee_email'     => '',
        'item_id'           => 0,
        'secondary_item_id' => 0,
        'type'              => 'request',
        'content'           => '',
        'date_modified'     => bp_core_current_time(),
        'invite_sent'       => 0,
        'accepted'          => 0
    ), 'add_request' );
 
    // If there is no invitee, bail.
    if ( ! ( $r['user_id'] || $r['invitee_email'] ) ) {
        return false;
    }
 
    /**
     * Is this user allowed to make a request in this situation?
     *
     * @since BuddyBoss 1.3.5
     *
     * @param array $r Describes the invitation to be added.
     */
    if ( ! $this->allow_request( $r ) ) {
        return false;
    }
 
    /*
     * Avoid creating duplicate requests.
     */
    $base_args = array(
        'user_id'           => $r['user_id'],
        'invitee_email'     => $r['invitee_email'],
        'item_id'           => $r['item_id'],
        'secondary_item_id' => $r['secondary_item_id'],
    );
    if ( $this->request_exists( $base_args ) ) {
        return false;
    }
 
    /*
     * Check for outstanding invitations to the same item.
     * A request + a sent invite = acceptance.
     */
    $invite_args = array_merge( $base_args, array( 'invite_sent' => 'sent' ) );
    $invite = $this->invitation_exists( $invite_args );
 
    if ( $invite ) {
        // Accept the invite.
        return $this->accept_invitation( $base_args );
    } else {
        // Set up the new request.
        $request                    = new BP_Invitation;
        $request->user_id           = $r['user_id'];
        $request->inviter_id        = $r['inviter_id'];
        $request->invitee_email     = $r['invitee_email'];
        $request->class             = $this->class_name;
        $request->item_id           = $r['item_id'];
        $request->secondary_item_id = $r['secondary_item_id'];
        $request->type              = $r['type'];
        $request->content           = $r['content'];
        $request->date_modified     = $r['date_modified'];
        $request->invite_sent       = $r['invite_sent'];
        $request->accepted          = $r['accepted'];
 
        // Save the new invitation.
        return $request->save();
    }
}

Changelog

Changelog
Version Description
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.