BP_REST_Messages_Endpoint::prepare_message_for_response( BP_Messages_Message $message, WP_REST_Request $request )
Prepares message data for the REST response.
Description
Parameters
- $message
-
(Required) The Message object.
- $request
-
(Required) Full details about the request.
Return
(array) The Message data for the REST response.
Source
File: bp-messages/classes/class-bp-rest-messages-endpoint.php
public function prepare_message_for_response( $message, $request ) { global $wpdb; $group_name = ''; $group_id = bp_messages_get_meta( $message->id, 'group_id', true ); $group_message_users = bp_messages_get_meta( $message->id, 'group_message_users', true ); $group_message_type = bp_messages_get_meta( $message->id, 'group_message_type', true ); $group_message_thread_type = bp_messages_get_meta( $message->id, 'group_message_thread_type', true ); $group_message_fresh = bp_messages_get_meta( $message->id, 'group_message_fresh', true ); $message_from = bp_messages_get_meta( $message->id, 'message_from', true ); $message_left = bp_messages_get_meta( $message->id, 'group_message_group_left', true ); $message_joined = bp_messages_get_meta( $message->id, 'group_message_group_joined', true ); $message_banned = bp_messages_get_meta( $message->id, 'group_message_group_ban', true ); $message_unbanned = bp_messages_get_meta( $message->id, 'group_message_group_un_ban', true ); $message_deleted = bp_messages_get_meta( $message->id, 'bp_messages_deleted', true ); if ( ! empty( $group_id ) ) { // Get Group Name. if ( bp_is_active( 'groups' ) ) { $group_name = bp_get_group_name( groups_get_group( $group_id ) ); $group_link = bp_get_group_permalink( groups_get_group( $group_id ) ); } else { $prefix = apply_filters( 'bp_core_get_table_prefix', $wpdb->base_prefix ); $groups_table = $prefix . 'bp_groups'; // phpcs:ignore $group_name = $wpdb->get_var( "SELECT `name` FROM `{$groups_table}` WHERE `id` = '{$group_id}';" ); // db call ok; no-cache ok; $group_link = ''; } } if ( ! empty( $group_id ) && ! empty( $message_from ) && 'group' === $message_from ) { if ( empty( $group_name ) ) { $group_name = '"' . __( 'Deleted Group', 'buddyboss' ) . '"'; if ( $group_message_users && $group_message_type && 'all' === $group_message_users && 'open' === $group_message_type ) { $group_text = sprintf( /* translators: %s: Group name */ __( 'Sent from group %s to all group members.', 'buddyboss' ), $group_name ); } elseif ( $group_message_users && $group_message_type && 'individual' === $group_message_users && 'open' === $group_message_type ) { $group_text = sprintf( /* translators: %s: Group name */ __( 'Sent from group %s to the people in this conversation.', 'buddyboss' ), $group_name ); } elseif ( $group_message_users && $group_message_type && 'all' === $group_message_users && 'private' === $group_message_type ) { $group_text = sprintf( /* translators: %s: Group name */ __( 'Sent from group %s individually to all group members.', 'buddyboss' ), $group_name ); } elseif ( $group_message_users && $group_message_type && 'individual' === $group_message_users && 'private' === $group_message_type ) { $group_text = sprintf( /* translators: %s: Group name */ __( 'Sent from group %s to individual members.', 'buddyboss' ), $group_name ); } } else { if ( $group_message_users && $group_message_type && 'all' === $group_message_users && 'open' === $group_message_type ) { $group_text = sprintf( /* translators: 1: Group link. 2: Group name. */ __( 'Sent from group <a href="%1$s">%2$s</a> to all group members.', 'buddyboss' ), $group_link, $group_name ); } elseif ( $group_message_users && $group_message_type && 'individual' === $group_message_users && 'open' === $group_message_type ) { $group_text = sprintf( /* translators: 1: Group link. 2: Group name. */ __( 'Sent from group <a href="%1$s">%2$s</a> to the people in this conversation.', 'buddyboss' ), $group_link, $group_name ); } elseif ( $group_message_users && $group_message_type && 'all' === $group_message_users && 'private' === $group_message_type ) { $group_text = sprintf( /* translators: 1: Group link. 2: Group name. */ __( 'Sent from group <a href="%1$s">%2$s</a> individually to all group members.', 'buddyboss' ), $group_link, $group_name ); } elseif ( $group_message_users && $group_message_type && 'individual' === $group_message_users && 'private' === $group_message_type ) { $group_text = sprintf( /* translators: 1: Group link. 2: Group name. */ __( 'Sent from group <a href="%1$s">%2$s</a> to individual members.', 'buddyboss' ), $group_link, $group_name ); } } } if ( $message_left && 'yes' === $message_left ) { $message->message = sprintf( /* translators: %s: Group name */ __( 'Left "%s"', 'buddyboss' ), ucwords( $group_name ) ); } elseif ( $message_deleted && 'yes' === $message_deleted ) { $message->message = __( 'This message was deleted.', 'buddyboss' ); } elseif ( $message_unbanned && 'yes' === $message_unbanned ) { $message->message = sprintf( /* translators: %s: Group name */ __( 'Removed Ban "%s"', 'buddyboss' ), ucwords( $group_name ) ); } elseif ( $message_banned && 'yes' === $message_banned ) { $message->message = sprintf( /* translators: %s: Group name */ __( 'Ban "%s"', 'buddyboss' ), ucwords( $group_name ) ); } elseif ( $message_joined && 'yes' === $message_joined ) { $message->message = sprintf( /* translators: %s: Group name */ __( 'Joined "%s"', 'buddyboss' ), ucwords( $group_name ) ); } elseif ( 'This message was deleted.' === wp_strip_all_tags( $message->message ) ) { $message->message = wp_strip_all_tags( $message->message ); } else { $message->message = $message->message; } $data = array( 'id' => (int) $message->id, 'thread_id' => (int) $message->thread_id, 'sender_id' => (int) $message->sender_id, 'subject' => array( 'raw' => $message->subject, 'rendered' => apply_filters( 'bp_get_message_thread_subject', wp_staticize_emoji( $message->subject ) ), ), 'message' => array( 'raw' => wp_strip_all_tags( $message->message ), 'rendered' => apply_filters( 'bp_get_the_thread_message_content', wp_staticize_emoji( $message->message ) ), ), 'date_sent' => bp_rest_prepare_date_response( $message->date_sent ), 'display_date' => bp_core_time_since( $message->date_sent ), 'group_name' => ( isset( $group_name ) ? $group_name : '' ), 'group_text' => ( isset( $group_text ) ? $group_text : '' ), 'group_link' => ( isset( $group_link ) ? $group_link : '' ), 'group_message_users' => $group_message_users, 'group_message_type' => $group_message_type, 'group_message_thread_type' => $group_message_thread_type, 'group_message_fresh' => $group_message_fresh, 'message_from' => $message_from, ); if ( bp_is_active( 'messages', 'star' ) ) { $user_id = bp_loggedin_user_id(); if ( isset( $request['user_id'] ) && $request['user_id'] ) { $user_id = (int) $request['user_id']; } $data['is_starred'] = bp_messages_is_message_starred( $data['id'], $user_id ); } // Add REST Fields (BP Messages meta) data. $data = $this->add_additional_fields_to_object( $data, $request ); /** * Filter a message value returned from the API. * * @param array $data The message value for the REST response. * @param BP_Messages_Message $message The Message object. * @param WP_REST_Request $request Request used to generate the response. * * @since 0.1.0 */ return apply_filters( 'bp_rest_message_prepare_value', $data, $message, $request ); }
Changelog
Version | Description |
---|---|
0.1.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.