Commit 399badfcdf for woocommerce

commit 399badfcdf9d40730d184bbdc6abe0aa7163ba31
Author: Alba Rincón <albarin@users.noreply.github.com>
Date:   Fri Feb 13 09:35:10 2026 +0100

    Avoid extra queries in group product pages by priming post caches (#63267)

    * Avoid extra queries in WC_Product_Grouped::is_on_sale() by priming post caches

    * Add changefile(s) from automation for the following project(s): woocommerce

    ---------

    Co-authored-by: woocommercebot <woocommercebot@users.noreply.github.com>

diff --git a/plugins/woocommerce/changelog/63267-fix-grouped-product-is-on-sale-query-optimization b/plugins/woocommerce/changelog/63267-fix-grouped-product-is-on-sale-query-optimization
new file mode 100644
index 0000000000..ea5a4747b9
--- /dev/null
+++ b/plugins/woocommerce/changelog/63267-fix-grouped-product-is-on-sale-query-optimization
@@ -0,0 +1,4 @@
+Significance: minor
+Type: performance
+
+Avoid extra queries in group product pages by priming the post cache.
\ No newline at end of file
diff --git a/plugins/woocommerce/includes/class-wc-product-grouped.php b/plugins/woocommerce/includes/class-wc-product-grouped.php
index 33357ff3eb..254637d43e 100644
--- a/plugins/woocommerce/includes/class-wc-product-grouped.php
+++ b/plugins/woocommerce/includes/class-wc-product-grouped.php
@@ -62,7 +62,9 @@ class WC_Product_Grouped extends WC_Product {
 	 * @return bool
 	 */
 	public function is_on_sale( $context = 'view' ) {
-		$children = array_filter( array_map( 'wc_get_product', $this->get_children( $context ) ), 'wc_products_array_filter_visible_grouped' );
+		$child_ids = $this->get_children( $context );
+		_prime_post_caches( $child_ids );
+		$children = array_filter( array_map( 'wc_get_product', $child_ids ), 'wc_products_array_filter_visible_grouped' );
 		$on_sale  = false;

 		foreach ( $children as $child ) {