messages_delete_thread( int|array $thread_ids, int $user_id )

Deletes message thread(s) for a given user.

Description

Note that "deleting" a thread for a user means removing it from the user’s message boxes. A thread is not deleted from the database until it’s been "deleted" by all recipients.

Parameters

$thread_ids

(Required) Thread ID or array of thread IDs.

$user_id

(Required) ID of the user to delete the threads for. Defaults to the current logged-in user.

Return

(bool) True on success, false on failure.

Source

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

378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
function messages_delete_thread( $thread_ids, $user_id = 0 ) {
 
    if ( empty( $user_id ) ) {
        $user_id =
            bp_displayed_user_id() ?
            bp_displayed_user_id() :
            bp_loggedin_user_id();
    }
 
    /**
     * Fires before specified thread IDs have been deleted.
     *
     * @since BuddyPress 1.5.0
     * @since BuddyPress 2.7.0 The $user_id parameter was added.
     *
     * @param int|array $thread_ids Thread ID or array of thread IDs to be deleted.
     * @param int       $user_id    ID of the user the threads are being deleted for.
     */
    do_action( 'messages_before_delete_thread', $thread_ids, $user_id );
 
    if ( is_array( $thread_ids ) ) {
        $error = 0;
        for ( $i = 0, $count = count( $thread_ids ); $i < $count; ++$i ) {
            if ( ! BP_Messages_Thread::delete( $thread_ids[$i], $user_id ) ) {
                $error = 1;
            }
        }
 
        if ( ! empty( $error ) ) {
            return false;
        }
 
        /**
         * Fires after specified thread IDs have been deleted.
         *
         * @since BuddyPress 1.0.0
         * @since BuddyPress 2.7.0 The $user_id parameter was added.
         *
         * @param int|array Thread ID or array of thread IDs that were deleted.
         * @param int       ID of the user that the threads were deleted for.
         */
        do_action( 'messages_delete_thread', $thread_ids, $user_id );
 
        return true;
    } else {
        if ( ! BP_Messages_Thread::delete( $thread_ids, $user_id ) ) {
            return false;
        }
 
        /** This action is documented in bp-messages/bp-messages-functions.php */
        do_action( 'messages_delete_thread', $thread_ids, $user_id );
 
        return true;
    }
}

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.