Automattic\WooCommerce\Internal\Admin

OrderMilestoneEasterEgg::compute_milestone_order_idsprivateWC 1.0

Computes milestone order IDs from HPOS without hydrating order objects.

Method of the class: OrderMilestoneEasterEgg{}

No Hooks.

Returns

Array. int>

Usage

// private - for code of main (parent) class only
$result = $this->compute_milestone_order_ids(): array;

OrderMilestoneEasterEgg::compute_milestone_order_ids() code WC 10.9.1

private function compute_milestone_order_ids(): array {
	global $wpdb;

	if ( ! OrderUtil::custom_orders_table_usage_is_enabled() ) {
		return array();
	}

	$qualifying_order_ids = array_map(
		'absint',
		$wpdb->get_col(
			$wpdb->prepare(
				'SELECT id
				FROM %i
				WHERE type = %s
				AND status IN ( %s, %s )
				AND transaction_id IS NOT NULL
				AND transaction_id <> %s
				ORDER BY date_created_gmt ASC, id ASC
				LIMIT %d',
				OrdersTableDataStore::get_orders_table_name(),
				'shop_order',
				'wc-processing',
				'wc-completed',
				'',
				self::MAX_QUALIFYING_ORDERS
			)
		)
	);

	$milestone_order_ids = array();
	foreach ( self::MILESTONE_POSITIONS as $pos => $key ) {
		if ( isset( $qualifying_order_ids[ $pos ] ) ) {
			$milestone_order_ids[ $key ] = (int) $qualifying_order_ids[ $pos ];
		}
	}

	return $milestone_order_ids;
}