Automattic\WooCommerce\Internal\RestApi\Routes\V4\Orders

UpdateUtils::prepare_shipping_dataprotectedWC 1.0

Create or update an order shipping method.

Method of the class: UpdateUtils{}

No Hooks.

Returns

WC_Order_Item_Shipping.

Usage

// protected - for code of main (parent) or child class
$result = $this->prepare_shipping_data( $request_data, $action, $item );
$request_data(array) (required)
$shipping Item data.
$action(string)
'create' to add shipping or 'update' to update it.
Default: 'create'
$item(object)
Passed when updating an item. Null during creation.
Default: null

UpdateUtils::prepare_shipping_data() code WC 10.4.3

protected function prepare_shipping_data( $request_data, $action = 'create', $item = null ) {
	$item = is_null( $item ) ? new WC_Order_Item_Shipping( ! empty( $request_data['id'] ) ? $request_data['id'] : '' ) : $item;

	if ( 'create' === $action && empty( $request_data['method_id'] ) ) {
		throw new WC_REST_Exception( 'woocommerce_rest_invalid_shipping_item', esc_html__( 'Shipping method ID is required.', 'woocommerce' ), 400 );
	}

	$this->maybe_set_item_props( $item, array( 'method_id', 'method_title', 'total', 'instance_id' ), $request_data );
	$this->maybe_set_item_meta_data( $item, $request_data );

	return $item;
}