WC_REST_Orders_Controller::prepare_line_items()
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() 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; }