BP_REST_Groups_Endpoint::prepare_item_for_database( WP_REST_Request $request )
Prepare a group for create or update.
Description Description
Parameters Parameters
- $request
-
(Required) Request object.
Return Return
(stdClass|WP_Error)
Source Source
File: bp-groups/classes/class-bp-rest-groups-endpoint.php
protected function prepare_item_for_database( $request ) { $prepared_group = new stdClass(); $schema = $this->get_item_schema(); $group = $this->get_group_object( $request ); // Group ID. if ( ! empty( $schema['properties']['id'] ) && ! empty( $group->id ) ) { $prepared_group->group_id = $group->id; } // Group Creator ID. if ( ! empty( $schema['properties']['creator_id'] ) && isset( $request['creator_id'] ) ) { $prepared_group->creator_id = (int) $request['creator_id']; // Fallback on the existing creator id in case of an update. } elseif ( isset( $group->creator_id ) && $group->creator_id ) { $prepared_group->creator_id = (int) $group->creator_id; // Fallback on the current user otherwise. } else { $prepared_group->creator_id = bp_loggedin_user_id(); } // Group Slug. if ( ! empty( $schema['properties']['slug'] ) && isset( $request['slug'] ) ) { $prepared_group->slug = $request['slug']; } // Group Name. if ( ! empty( $schema['properties']['name'] ) && isset( $request['name'] ) ) { $prepared_group->name = $request['name']; } // Do additional checks for the Group's slug. if ( WP_REST_Server::CREATABLE === $request->get_method() || ( isset( $group->slug ) && isset( $prepared_group->slug ) && $group->slug !== $prepared_group->slug ) ) { // Fallback on the group name if the slug is not defined. if ( ! isset( $prepared_group->slug ) && ! isset( $group->slug ) ) { $prepared_group->slug = $prepared_group->name; } // Make sure it is unique and sanitize it. $prepared_group->slug = groups_check_slug( sanitize_title( esc_attr( $prepared_group->slug ) ) ); } // Group description. if ( ! empty( $schema['properties']['description'] ) && isset( $request['description'] ) ) { if ( is_string( $request['description'] ) ) { $prepared_group->description = $request['description']; } elseif ( isset( $request['description']['raw'] ) ) { $prepared_group->description = $request['description']['raw']; } } // Group status. if ( ! empty( $schema['properties']['status'] ) && isset( $request['status'] ) ) { $prepared_group->status = $request['status']; } // Group Forum Enabled. if ( ! empty( $schema['properties']['enable_forum'] ) && isset( $request['enable_forum'] ) ) { $prepared_group->enable_forum = (bool) $request['enable_forum']; } // Group Parent ID. if ( ! empty( $schema['properties']['parent_id'] ) && isset( $request['parent_id'] ) ) { $prepared_group->parent_id = $request['parent_id']; } /** * Filters a group before it is inserted or updated via the REST API. * * @since 5.0.0 * * @param stdClass $prepared_group An object prepared for inserting or updating the database. * @param WP_REST_Request $request Request object. */ return apply_filters( 'bp_rest_groups_pre_insert_value', $prepared_group, $request ); }
Changelog Changelog
Version | Description |
---|---|
5.0.0 | Introduced. |