WC_REST_Orders_Controller::prepare_object_for_response_core()protectedWC 9.5.0

Core method to prepare a single order object for response (doesn't fire hooks, execute rest_ensure_response, or add links).

Method of the class: WC_REST_Orders_Controller{}

No Hooks.

Return

Array. Prepared response data.

Usage

// protected - for code of main (parent) or child class
$result = $this->prepare_object_for_response_core( $order, $request ): array;
$order(WC_Data) (required)
Object data.
$request(WP_REST_Request) (required)
Request object.

Changelog

Since 9.5.0 Introduced.

WC_REST_Orders_Controller::prepare_object_for_response_core() code WC 9.5.1

protected function prepare_object_for_response_core( $order, $request ): array {
	$cogs_is_enabled = $this->cogs_is_enabled();

	$data = parent::prepare_object_for_response_core( $order, $request );

	if ( isset( $data['line_items'] ) ) {
		foreach ( $data['line_items'] as &$line_item_data ) {
			if ( isset( $line_item_data['cogs_value'] ) ) {
				if ( $cogs_is_enabled ) {
					$line_item_data['cost_of_goods_sold']['value'] = $line_item_data['cogs_value'];
				}
				unset( $line_item_data['cogs_value'] );
			}
		}
	}

	if ( $cogs_is_enabled ) {
		$data['cost_of_goods_sold']['total_value'] = $order->get_cogs_total_value();
	}

	return $data;
}