Automattic\WooCommerce\Internal\Utilities
ProductUtil::prime_image_caches
Prime featured and gallery image attachment caches for a collection of products in a single batched query, instead of priming each product's images separately.
Method of the class: ProductUtil{}
No Hooks.
Returns
null. Nothing (null).
Usage
$ProductUtil = new ProductUtil(); $ProductUtil->prime_image_caches( $products ): void;
- $products(array) (required)
- Products whose image attachments should be primed. Non-product items are ignored.
ProductUtil::prime_image_caches() ProductUtil::prime image caches code WC 11.0.0
public function prime_image_caches( array $products ): void {
$products = array_filter( $products, static fn( $product ) => $product instanceof \WC_Product );
$featured = array_map( static fn( $product ) => $product->get_image_id(), $products );
$gallery = array_map( static fn( $product ) => $product->get_gallery_image_ids(), $products );
$image_ids = array_filter( array_unique( array_map( 'intval', array_merge( $featured, ...$gallery ) ) ) );
if ( ! empty( $image_ids ) ) {
// Prime caches to reduce future queries.
_prime_post_caches( $image_ids );
}
}