BP_Messages_Thread::get_messages( int $thread_id,  $before = null,  $perpage = 10 )

Get all messages associated with a thread.

Description

Parameters

$thread_id

(Required) The message thread ID.

Return

(object) List of messages associated with a thread.

Source

File: bp-messages/classes/class-bp-messages-thread.php

452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
public static function get_messages( $thread_id = 0, $before = null, $perpage = 10 ) {
    $thread_id = (int) $thread_id;
    $cache_key = "{$thread_id}{$before}{$perpage}";
    $messages  = wp_cache_get( $cache_key, 'bp_messages_threads' );
 
    if ( false === $messages || static::$noCache ) {
        // if current user isn't the recpient, then return empty array
        if ( ! static::is_thread_recipient( $thread_id ) ) {
            wp_cache_set( $cache_key, [], 'bp_messages_threads' );
            return [];
        }
 
        global $wpdb;
        $bp = buddypress();
        $last_deleted_id = static::$last_deleted_message ? static::$last_deleted_message->id : 0;
        $last_deleted_timestamp = static::$last_deleted_message? static::$last_deleted_message->date_sent : '0000-00-00 00:00:00';
 
        if ( ! $before ) {
            $before = bp_core_current_time();
            // $before = gmdate( 'Y-m-d H:i:s', ( time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS + 1 ) ) );
        }
 
        // Always sort by DESC by default.
        $messages = $wpdb->get_results( $sql $wpdb->prepare(
            "SELECT * FROM {$bp->messages->table_name_messages}
            WHERE thread_id = %d
            AND id > %d
            AND date_sent > %s
            AND date_sent <= %s
            ORDER BY date_sent DESC, id DESC
            LIMIT %d
        ", $thread_id, $last_deleted_id, $last_deleted_timestamp, $before, $perpage ) );
 
        wp_cache_set( $cache_key, (array) $messages, 'bp_messages_threads' );
    }
 
    // Integer casting.
    foreach ( $messages as $key => $data ) {
        $messages[ $key ]->id        = (int) $messages[ $key ]->id;
        $messages[ $key ]->thread_id = (int) $messages[ $key ]->thread_id;
        $messages[ $key ]->sender_id = (int) $messages[ $key ]->sender_id;
    }
 
    return $messages;
}

Changelog

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