BP_REST_XProfile_Data_Endpoint::update_item( WP_REST_Request $request )
Save XProfile data.
Description
Parameters
- $request
-
(Required) Full data about the request.
Return
(WP_REST_Response) | WP_Error
Source
File: bp-xprofile/classes/class-bp-rest-xprofile-data-endpoint.php
public function update_item( $request ) { // Setting context. $request->set_param( 'context', 'edit' ); $field = $this->get_xprofile_field_object( $request->get_param( 'field_id' ) ); if ( empty( $field->id ) ) { return new WP_Error( 'bp_rest_invalid_id', __( 'Invalid field ID.', 'buddyboss' ), array( 'status' => 404, ) ); } $user = bp_rest_get_user( $request->get_param( 'user_id' ) ); $value = $request->get_param( 'value' ); /** * For field types not supporting multiple values, join values in case * the submitted value was not an array. */ if ( ! $field->type_obj->supports_multiple_defaults && is_array( $value ) && ! in_array( $field->type, apply_filters( 'bp_rest_xprofile_mutiple', array( 'socialnetworks' ) ) ) ) { $value = implode( ' ', $value ); } if ( ! xprofile_set_field_data( $field->id, $user->ID, $value ) ) { return new WP_Error( 'rest_user_cannot_save_xprofile_data', __( 'Cannot save XProfile data.', 'buddyboss' ), array( 'status' => 500, ) ); } // Get Field data. $field_data = $this->get_xprofile_field_data_object( $field->id, $user->ID ); // Create Additional fields. $fields_update = $this->update_additional_fields_for_object( $field_data, $request ); if ( is_wp_error( $fields_update ) ) { return $fields_update; } $retval = $this->prepare_response_for_collection( $this->prepare_item_for_response( $field_data, $request ) ); $response = rest_ensure_response( $retval ); /** * Fires after a XProfile data is saved via the REST API. * * @param BP_XProfile_Field $field The field object. * @param BP_XProfile_ProfileData $field_data The field data object. * @param WP_User $user The user object. * @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_xprofile_data_save_item', $field, $field_data, $user, $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.