Automattic\WooCommerce\Internal\Fulfillments
FulfillmentUtils::get_fulfillment_items
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() 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'] ] );
}
)
);
}