WC_REST_Orders_Controller::prepare_line_items()protectedWC 1.0

Create or update a line item, overridden to add COGS data as needed.

Method of the class: WC_REST_Orders_Controller{}

No Hooks.

Return

WC_Order_Item_Product.

Usage

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

WC_REST_Orders_Controller::prepare_line_items() code WC 9.5.1

protected function prepare_line_items( $posted, $action = 'create', $item = null ) {
	$prepared = parent::prepare_line_items( $posted, $action, $item );

	if ( ! $prepared->has_cogs() || ! $this->cogs_is_enabled() ) {
		return $prepared;
	}

	$cogs_value = $posted['cost_of_goods_sold']['value'] ?? null;
	if ( ! is_null( $cogs_value ) ) {
		$prepared->set_cogs_value( (float) $cogs_value );
	}

	return $prepared;
}