Automattic\WooCommerce\Internal\Fulfillments

FulfillmentUtils::get_fulfillment_itemspublic staticWC 1.0

Get order items for a fulfillment.

Method of the class: FulfillmentUtils{}

No Hooks.

Returns

Array. An array of order items.

Usage

$result = FulfillmentUtils::get_fulfillment_items( $order, $fulfillment ): array;
$order(WC_Order) (required)
The order object.
$fulfillment(Fulfillment) (required)
The fulfillment object.

FulfillmentUtils::get_fulfillment_items() code WC 10.3.3

public static function get_fulfillment_items( WC_Order $order, Fulfillment $fulfillment ): array {
	$fulfillment_items = array_combine(
		array_column( $fulfillment->get_items(), 'item_id' ),
		array_column( $fulfillment->get_items(), 'qty' )
	);

	$order_items = array_map(
		function ( $item ) use ( $order ) {
			return array(
				'item_id' => $item->get_id(),
				'item'    => $item,
				'qty'     => $item->get_quantity() - $order->get_qty_refunded_for_item( $item ),
			);
		},
		$order->get_items()
	);

	return array_map(
		function ( $item ) use ( $fulfillment_items ) {
			$item['qty'] = $fulfillment_items[ $item['item_id'] ];
			return $item;
		},
		array_filter(
			$order_items,
			function ( $item ) use ( $fulfillment_items ) {
				return isset( $fulfillment_items[ $item['item_id'] ] );
			}
		)
	);
}