Automattic\WooCommerce\Internal\RestApi\Routes\V4\Refunds\Schema

RefundSchema::get_item_responsepublicWC 1.0

Get an item response.

Method of the class: RefundSchema{}

No Hooks.

Returns

Array.

Usage

$RefundSchema = new RefundSchema();
$RefundSchema->get_item_response( $refund, $request, $include_fields ): array;
$refund(WC_Order_Refund) (required)
Refund instance.
$request(WP_REST_Request) (required)
Request object.
$include_fields(array)
Fields to include in the response.
Default: array()

RefundSchema::get_item_response() code WC 10.4.3

public function get_item_response( $refund, WP_REST_Request $request, array $include_fields = array() ): array {
	$dp   = is_null( $request['num_decimals'] ) ? wc_get_price_decimals() : absint( $request['num_decimals'] );
	$data = array(
		'id'               => $refund->get_id(),
		'order_id'         => $refund->get_parent_id(),
		'currency'         => $refund->get_currency(),
		'currency_symbol'  => html_entity_decode( get_woocommerce_currency_symbol( $refund->get_currency() ), ENT_QUOTES ),
		'date_created'     => wc_rest_prepare_date_response( $refund->get_date_created(), false ),
		'date_created_gmt' => wc_rest_prepare_date_response( $refund->get_date_created() ),
		'amount'           => wc_format_decimal( $refund->get_amount(), $dp ),
		'reason'           => $refund->get_reason(),
		'refunded_by'      => $refund->get_refunded_by(),
		'refunded_payment' => $refund->get_refunded_payment(),
	);

	if ( in_array( 'line_items', $include_fields, true ) ) {
		$data['line_items'] = array_merge(
			$this->get_line_items_response( $refund->get_items( 'line_item' ), $request ),
			$this->get_line_items_response( $refund->get_items( 'fee' ), $request ),
			$this->get_line_items_response( $refund->get_items( 'shipping' ), $request ),
		);
	}

	if ( in_array( 'meta_data', $include_fields, true ) ) {
		$filtered_meta_data = $this->filter_internal_meta_keys( $refund->get_meta_data() );
		$data['meta_data']  = array();
		foreach ( $filtered_meta_data as $meta_item ) {
			$data['meta_data'][] = array(
				'id'    => $meta_item->id,
				'key'   => $meta_item->key,
				'value' => $meta_item->value,
			);
		}
	}

	// Add COGS data.
	if ( $this->cogs_is_enabled() && in_array( 'cost_of_goods_sold', $include_fields, true ) ) {
		$data['cost_of_goods_sold']['total_value'] = $refund->get_cogs_total_value();
	}

	$data = array_intersect_key( $data, array_flip( $include_fields ) );

	return $data;
}