WC_REST_CRUD_Controller::save_object()protectedWC 3.0.0

Save an object data.

Method of the class: WC_REST_CRUD_Controller{}

No Hooks.

Return

WC_Data|WP_Error.

Usage

// protected - for code of main (parent) or child class
$result = $this->save_object( $request, $creating );
$request(WP_REST_Request) (required)
Full details about the request.
$creating(true|false)
If is creating a new object.
Default: false

Changelog

Since 3.0.0 Introduced.

WC_REST_CRUD_Controller::save_object() code WC 9.8.2

protected function save_object( $request, $creating = false ) {
	try {
		$object = $this->prepare_object_for_database( $request, $creating );

		if ( is_wp_error( $object ) ) {
			return $object;
		}

		try {
			$object->save();
		} catch ( Exception $e ) {
			$error = "woocommerce_rest_{$this->post_type}_not_created";

			wc_get_logger()->error(
				$e->getMessage(),
				array(
					'source' => 'woocommerce-rest-api',
					'error'  => $error,
					'code'   => 400,
				)
			);
			return new WP_Error( $error, $e->getMessage(), array( 'status' => 400 ) );
		}

		return $this->get_object( $object->get_id() );
	} catch ( WC_Data_Exception $e ) {
		return new WP_Error( $e->getErrorCode(), $e->getMessage(), $e->getErrorData() );
	} catch ( WC_REST_Exception $e ) {
		return new WP_Error( $e->getErrorCode(), $e->getMessage(), array( 'status' => $e->getCode() ) );
	}
}