BP_REST_Messages_Endpoint::update_item( WP_REST_Request $request )
Update metadata for one of the messages of the thread.
Description
Parameters
- $request
-
(Required) Full details about the request.
Return
(WP_REST_Response) | WP_Error
Source
File: bp-messages/classes/class-bp-rest-messages-endpoint.php
736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 | public function update_item( $request ) { // Setting context. $request ->set_param( 'context' , 'edit' ); // Get the thread. $thread = $this ->get_thread_object( $request [ 'id' ] ); $error = new WP_Error( 'bp_rest_messages_update_failed' , __( 'There was an error trying to update the message.' , 'buddyboss' ), array ( 'status' => 500, ) ); if ( ! $thread ->thread_id ) { return $error ; } // By default use the last message. $last_message = reset( $thread ->messages ); $message_id = $last_message ->id; if ( $request [ 'message_id' ] ) { $message_id = $request [ 'message_id' ]; } $updated_message = wp_list_filter( $thread ->messages, array ( 'id' => $message_id ) ); $updated_message = reset( $updated_message ); /** * Filter here to allow more users to edit the message meta (eg: the recipients). * * @param boolean $value Whether the user can edit the message meta. * By default: only the sender and a community moderator can. * @param BP_Messages_Message $updated_message The updated message object. * @param WP_REST_Request $request The request sent to the API. * * @since 0.1.0 */ $can_edit_item_meta = apply_filters( 'bp_rest_messages_can_edit_item_meta' , bp_loggedin_user_id() === $updated_message ->sender_id || bp_current_user_can( 'bp_moderate' ), $updated_message , $request ); // The message must exist in the thread, and the logged in user must be the sender. if ( ! isset( $updated_message ->id ) || ! $updated_message ->id || ! $can_edit_item_meta ) { return $error ; } $fields_update = $this ->update_additional_fields_for_object( $updated_message , $request ); if ( is_wp_error( $fields_update ) ) { return $fields_update ; } $retval = $this ->prepare_response_for_collection( $this ->prepare_item_for_response( $thread , $request ) ); $response = rest_ensure_response( $retval ); /** * Fires after a message is updated via the REST API. * * @param BP_Messages_Message $updated_message The updated message. * @param WP_REST_Response $response The response data. * @param WP_REST_Request $request The request sent to the API. * * @since 0.1.0 */ do_action( 'bp_rest_messages_update_item' , $updated_message , $response , $request ); return $response ; } |
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.