Automattic\WooCommerce\Internal\OrderReviews

SubmissionHandler::index_eligible_order_itemsprivateWC 1.0

Map order_item_id => WC_Order_Item_Product for fast row lookup, filtered through woocommerce_review_order_eligible_items the handler agrees with the page on which items are reviewable. The default callback excludes fully-refunded items.

Method of the class: SubmissionHandler{}

Returns

Array. \WC_Order_Item_Product>

Usage

// private - for code of main (parent) class only
$result = $this->index_eligible_order_items( $order ): array;
$order(WC_Order) (required)
Order being reviewed.

SubmissionHandler::index_eligible_order_items() code WC 10.8.1

private function index_eligible_order_items( WC_Order $order ): array {
	/**
	 * Filter the eligible items considered by the Review Order
	 * submission handler.
	 *
	 * Same hook the page uses; documented in
	 * `templates/order/customer-review-order.php`.
	 *
	 * @since 10.8.0
	 *
	 * @param \WC_Order_Item[] $items Order line items.
	 * @param WC_Order         $order The order being reviewed.
	 */
	$items = (array) apply_filters( 'woocommerce_review_order_eligible_items', $order->get_items(), $order );

	$index = array();
	foreach ( $items as $item ) {
		if ( $item instanceof \WC_Order_Item_Product ) {
			$index[ $item->get_id() ] = $item;
		}
	}
	return $index;
}