BP_Messages_Thread::populate( int $thread_id, string $order = 'ASC', array $args = array() )
Populate method.
Description Description
Used in constructor.
Parameters Parameters
- $thread_id
-
(Required) The message thread ID.
- $order
-
(Optional) The order to sort the messages. Either 'ASC' or 'DESC'.
Default value: 'ASC'
- $args
-
(Optional) Array of arguments.
- 'update_meta_cache'
(bool) Whether to pre-fetch metadata for queried message items. Default: true.
Default value: array()
- 'update_meta_cache'
Return Return
(bool) False on failure.
Source Source
File: bp-messages/classes/class-bp-messages-thread.php
public function populate( $thread_id = 0, $order = 'ASC', $args = array() ) { if ( 'ASC' !== $order && 'DESC' !== $order ) { $order = 'ASC'; } $user_id = bp_displayed_user_id() ? bp_displayed_user_id() : bp_loggedin_user_id(); // Merge $args with our defaults. $r = wp_parse_args( $args, array( 'user_id' => $user_id, 'update_meta_cache' => true ) ); $this->messages_order = $order; $this->thread_id = (int) $thread_id; // Get messages for thread. $this->messages = self::get_messages( $this->thread_id ); if ( empty( $this->messages ) || is_wp_error( $this->messages ) ) { return false; } // Flip if order is DESC. if ( 'DESC' === $order ) { $this->messages = array_reverse( $this->messages ); } $last_message_index = count( $this->messages ) - 1; $this->last_message_id = $this->messages[ $last_message_index ]->id; $this->last_message_date = $this->messages[ $last_message_index ]->date_sent; $this->last_sender_id = $this->messages[ $last_message_index ]->sender_id; $this->last_message_subject = $this->messages[ $last_message_index ]->subject; $this->last_message_content = $this->messages[ $last_message_index ]->message; foreach ( (array) $this->messages as $key => $message ) { $this->sender_ids[ $message->sender_id ] = $message->sender_id; } // Fetch the recipients. $this->recipients = $this->get_recipients(); // Get the unread count for the logged in user. if ( isset( $this->recipients[ $r['user_id'] ] ) ) { $this->unread_count = $this->recipients[ $r['user_id'] ]->unread_count; } // Grab all message meta. if ( true === (bool) $r['update_meta_cache'] ) { bp_messages_update_meta_cache( wp_list_pluck( $this->messages, 'id' ) ); } /** * Fires after a BP_Messages_Thread object has been populated. * * @since 2.2.0 * * @param BP_Messages_Thread $this Message thread object. */ do_action( 'bp_messages_thread_post_populate', $this ); }
Changelog Changelog
Version | Description |
---|---|
1.0.0 | Introduced. |