BP_REST_Messages_Endpoint::prepare_item_for_response( BP_Messages_Thread $thread, WP_REST_Request $request )
Prepares thread data for return as an object.
Description Description
Parameters Parameters
- $thread
-
(Required) Thread object.
- $request
-
(Required) Full details about the request.
Return Return
(WP_REST_Response)
Source Source
File: bp-messages/classes/class-bp-rest-messages-endpoint.php
public function prepare_item_for_response( $thread, $request ) { $excerpt = ''; if ( isset( $thread->last_message_content ) ) { $excerpt = wp_strip_all_tags( bp_create_excerpt( $thread->last_message_content, 75 ) ); } $data = array( 'id' => $thread->thread_id, 'message_id' => $thread->last_message_id, 'last_sender_id' => $thread->last_sender_id, 'subject' => array( 'raw' => $thread->last_message_subject, 'rendered' => apply_filters( 'bp_get_message_thread_subject', wp_staticize_emoji( $thread->last_message_subject ) ), ), 'excerpt' => array( 'raw' => $excerpt, 'rendered' => apply_filters( 'bp_get_message_thread_excerpt', $excerpt ), ), 'message' => array( 'raw' => $thread->last_message_content, 'rendered' => apply_filters( 'bp_get_message_thread_content', wp_staticize_emoji( $thread->last_message_content ) ), ), 'date' => bp_rest_prepare_date_response( $thread->last_message_date ), 'unread_count' => ! empty( $thread->unread_count ) ? $thread->unread_count : 0, 'sender_ids' => $thread->sender_ids, 'recipients' => array(), 'messages' => array(), ); // Loop through messages to prepare them for the response. foreach ( $thread->messages as $message ) { $data['messages'][] = $this->prepare_message_for_response( $message, $request ); } // Loop through recipients to prepare them for the response. foreach ( $thread->recipients as $recipient ) { $data['recipients'][ $recipient->user_id ] = $this->prepare_recipient_for_response( $recipient, $request ); } // Pluck starred message ids. $data['starred_message_ids'] = array_keys( array_filter( wp_list_pluck( $data['messages'], 'is_starred', 'id' ) ) ); $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; $data = $this->add_additional_fields_to_object( $data, $request ); $data = $this->filter_response_by_context( $data, $context ); $response = rest_ensure_response( $data ); $response->add_links( $this->prepare_links( $thread ) ); /** * Filter a thread value returned from the API. * * @since 5.0.0 * * @param WP_REST_Response $response Response generated by the request. * @param WP_REST_Request $request Request used to generate the response. * @param BP_Messages_Thread $thread The thread object. */ return apply_filters( 'bp_rest_messages_prepare_value', $response, $request, $thread ); }
Changelog Changelog
Version | Description |
---|---|
5.0.0 | Introduced. |