Automattic\WooCommerce\Internal\Products
ProductsOrderingMoveService::compose_range_ids
Returns IDs of products whose position falls within the move range.
Метод класса: ProductsOrderingMoveService{}
Хуков нет.
Возвращает
int[].
Использование
// private - только в коде основоного (родительского) класса $result = $this->compose_range_ids( $map, $reindexed ): array;
- $map(объект) (обязательный)
- Map with the move route.
- $reindexed(array<int,int>) (обязательный)
- Reindexed positions map, keyed by product ID.
Код ProductsOrderingMoveService::compose_range_ids() ProductsOrderingMoveService::compose range ids WC 11.2.2
private function compose_range_ids( object $map, array $reindexed ): array {
global $wpdb;
// Performance note: when a prior reindex is available, derive range IDs from it — avoids a DB round-trip.
$expected_count = $map->range_to - $map->range_from + 1;
$range_ids = array_keys( array_filter( $reindexed, static fn( $position ) => $position >= $map->range_from && $position <= $map->range_to ) );
if ( count( $range_ids ) !== $expected_count ) {
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching
$range_ids = $wpdb->get_col(
$wpdb->prepare(
"SELECT ID FROM {$wpdb->posts} WHERE post_type = 'product' AND menu_order BETWEEN %d AND %d",
$map->range_from,
$map->range_to
)
);
}
return array_map( 'intval', $range_ids );
}