BP_REST_Activity_Endpoint::create_item( WP_REST_Request $request )
Create an activity.
Description
Parameters
- $request
-
(Required) Full data about the request.
Return
(WP_REST_Response) | WP_Error
Source
File: bp-activity/classes/class-bp-rest-activity-endpoint.php
public function create_item( $request ) { $request->set_param( 'context', 'edit' ); if ( true === $this->bp_rest_activity_content_validate( $request ) ) { return new WP_Error( 'bp_rest_create_activity_empty_content', __( 'Please, enter some content.', 'buddyboss' ), array( 'status' => 400, ) ); } $prepared_activity = $this->prepare_item_for_database( $request ); if ( ! isset( $request['hidden'] ) && isset( $prepared_activity->hide_sitewide ) ) { $request['hidden'] = $prepared_activity->hide_sitewide; } // Fallback for the activity_update type. $type = 'activity_update'; if ( ! empty( $request['type'] ) ) { $type = $request['type']; } $prime = $request['primary_item_id']; $activity_id = 0; // Post a regular activity update. if ( 'activity_update' === $type ) { if ( bp_is_active( 'groups' ) && ! is_null( $prime ) ) { $activity_id = groups_post_update( $prepared_activity ); } else { $activity_id = bp_activity_post_update( $prepared_activity ); } // Post an activity comment. } elseif ( 'activity_comment' === $type ) { // ID of the root activity item. if ( isset( $prime ) ) { $prepared_activity->activity_id = (int) $prime; } // ID of a parent comment. if ( isset( $request['secondary_item_id'] ) ) { $prepared_activity->parent_id = (int) $request['secondary_item_id']; } $activity_id = bp_activity_new_comment( $prepared_activity ); // Otherwise add an activity. } else { $activity_id = bp_activity_add( $prepared_activity ); } if ( ! is_numeric( $activity_id ) ) { return new WP_Error( 'bp_rest_user_cannot_create_activity', __( 'Cannot create new activity.', 'buddyboss' ), array( 'status' => 500, ) ); } $activity = bp_activity_get_specific( array( 'activity_ids' => array( $activity_id ), 'display_comments' => 'stream', ) ); $activity = current( $activity['activities'] ); $fields_update = $this->update_additional_fields_for_object( $activity, $request ); if ( is_wp_error( $fields_update ) ) { return $fields_update; } $retval = $this->prepare_response_for_collection( $this->prepare_item_for_response( $activity, $request ) ); $response = rest_ensure_response( $retval ); /** * Fires after an activity item is created via the REST API. * * @param BP_Activity_Activity $activity The created activity. * @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_activity_create_item', $activity, $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.