BP_REST_Activity_Endpoint::prepare_item_for_database( WP_REST_Request $request )
Prepare an activity for create or update.
Description
Parameters
- $request
-
(Required) Request object.
Return
(stdClass|WP_Error) Object or WP_Error.
Source
File: bp-activity/classes/class-bp-rest-activity-endpoint.php
protected function prepare_item_for_database( $request ) { $prepared_activity = new stdClass(); $schema = $this->get_item_schema(); $activity = $this->get_activity_object( $request ); if ( ! empty( $schema['properties']['id'] ) && ! empty( $activity->id ) ) { $prepared_activity = $activity; $prepared_activity->id = $activity->id; if ( 'activity_comment' !== $request['type'] ) { $prepared_activity->error_type = 'wp_error'; } } // Activity author ID. if ( ! empty( $schema['properties']['user_id'] ) && isset( $request['user_id'] ) ) { $prepared_activity->user_id = (int) $request['user_id']; } else { $prepared_activity->user_id = get_current_user_id(); } // Activity component. if ( ! empty( $schema['properties']['component'] ) && isset( $request['component'] ) ) { $prepared_activity->component = $request['component']; } else { $prepared_activity->component = buddypress()->activity->id; } // Activity Item ID. if ( ! empty( $schema['properties']['primary_item_id'] ) && isset( $request['primary_item_id'] ) ) { $item_id = (int) $request['primary_item_id']; // Set the group ID of the activity. if ( bp_is_active( 'groups' ) && isset( $prepared_activity->component ) && buddypress()->groups->id === $prepared_activity->component ) { $prepared_activity->group_id = $item_id; $status = bp_get_group_status( groups_get_group( $item_id ) ); // Use a generic item ID for other components. } else { $prepared_activity->item_id = $item_id; } } // Secondary Item ID. if ( ! empty( $schema['properties']['secondary_item_id'] ) && isset( $request['secondary_item_id'] ) ) { $prepared_activity->secondary_item_id = (int) $request['secondary_item_id']; } // Activity type. if ( ! empty( $schema['properties']['type'] ) && isset( $request['type'] ) ) { $prepared_activity->type = $request['type']; } // Activity content. if ( ! empty( $schema['properties']['content'] ) && isset( $request['content'] ) ) { if ( is_string( $request['content'] ) ) { $prepared_activity->content = $request['content']; } elseif ( isset( $request['content']['raw'] ) ) { $prepared_activity->content = $request['content']['raw']; } } // Activity Sitewide visibility. if ( ! empty( $schema['properties']['hidden'] ) && isset( $request['hidden'] ) ) { $prepared_activity->hide_sitewide = (bool) $request['hidden']; } // Activity Privacy. if ( ! empty( $schema['properties']['privacy'] ) && isset( $request['privacy'] ) ) { $prepared_activity->privacy = $request['privacy']; } else { if ( ! empty( $activity->privacy ) ) { $prepared_activity->privacy = $activity->privacy; } else { $prepared_activity->privacy = 'public'; } } if ( ! empty( $status ) && in_array( $status, array( 'hidden', 'private' ), true ) ) { $prepared_activity->hide_sitewide = true; } // Ignore privacy passed when posting into group. if ( ! empty( $status ) ) { $prepared_activity->privacy = 'public'; } /** * Filters an activity before it is inserted or updated via the REST API. * * @param stdClass $prepared_activity An object prepared for inserting or updating the database. * @param WP_REST_Request $request Request object. * * @since 0.1.0 */ return apply_filters( 'bp_rest_activity_pre_insert_value', $prepared_activity, $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.