Merge pull request #22587 from woocommerce/performance/prime-variation-cache
Prime caches when reading variations
This commit is contained in:
commit
7df55922ae
|
@ -276,7 +276,13 @@ class WC_Product_Variable_Data_Store_CPT extends WC_Product_Data_Store_CPT imple
|
||||||
'regular_price' => array(),
|
'regular_price' => array(),
|
||||||
'sale_price' => array(),
|
'sale_price' => array(),
|
||||||
);
|
);
|
||||||
$variation_ids = $product->get_visible_children();
|
|
||||||
|
$variation_ids = $product->get_visible_children();
|
||||||
|
|
||||||
|
if ( is_callable( '_prime_post_caches' ) ) {
|
||||||
|
_prime_post_caches( $variation_ids );
|
||||||
|
}
|
||||||
|
|
||||||
foreach ( $variation_ids as $variation_id ) {
|
foreach ( $variation_ids as $variation_id ) {
|
||||||
$variation = wc_get_product( $variation_id );
|
$variation = wc_get_product( $variation_id );
|
||||||
|
|
||||||
|
@ -344,18 +350,19 @@ class WC_Product_Variable_Data_Store_CPT extends WC_Product_Data_Store_CPT imple
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$prices_array['price'][ $variation_id ] = wc_format_decimal( $price, wc_get_price_decimals() );
|
$prices_array['price'][ $variation_id ] = wc_format_decimal( $price, wc_get_price_decimals() );
|
||||||
$prices_array['regular_price'][ $variation_id ] = wc_format_decimal( $regular_price, wc_get_price_decimals() );
|
$prices_array['regular_price'][ $variation_id ] = wc_format_decimal( $regular_price, wc_get_price_decimals() );
|
||||||
$prices_array['sale_price'][ $variation_id ] = wc_format_decimal( $sale_price . '.00', wc_get_price_decimals() );
|
$prices_array['sale_price'][ $variation_id ] = wc_format_decimal( $sale_price . '.00', wc_get_price_decimals() );
|
||||||
|
|
||||||
$prices_array = apply_filters( 'woocommerce_variation_prices_array', $prices_array, $variation, $for_display );
|
$prices_array = apply_filters( 'woocommerce_variation_prices_array', $prices_array, $variation, $for_display );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add all pricing data to the transient array.
|
// Add all pricing data to the transient array.
|
||||||
foreach( $prices_array as $key => $values ) {
|
foreach ( $prices_array as $key => $values ) {
|
||||||
$transient_cached_prices_array[ $price_hash ][ $key ] = $values;
|
$transient_cached_prices_array[ $price_hash ][ $key ] = $values;
|
||||||
}
|
}
|
||||||
|
|
||||||
set_transient( $transient_name, wp_json_encode( $transient_cached_prices_array ), DAY_IN_SECONDS * 30 );
|
set_transient( $transient_name, wp_json_encode( $transient_cached_prices_array ), DAY_IN_SECONDS * 30 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue