Tanımlanmış geçici akımları yeniden oluşturun $product or $WooCommerce'deki varyasyon Nesneleri

Aug 19 2020

Belirli bir ürün veya varyasyon nesnesi için tüm yerel geçişleri yeniden oluşturmanın bir yolu olup olmadığını gerçekten merak ediyorum.

Dinamik fiyatlar sergilediğim bir durumdayım ve her şey yolunda. Ancak wc_prices_{id}bu yeni özel fiyatı hesaba katması için geçici akımları güncellemem gerekiyor . Değilse, ilk sayfa yüklemesi korkunçtur (özellikle bir seferde birkaç ürünün görüntülendiği mağaza sayfasında).

Ben içine çengel ediyorum woocommerce_product_variation_get_price, woocommerce_product_variation_get_regular_price, woocommerce_variation_prices_priceve woocommerce_variation_prices_regular_priceKısacası, bu sinek üzerinde değişiklik yapmak ( HER FİYAT bir sayfanın ve çocukları içeren bir ebeveyn ise, çok aralık fiyatları (min / max) hesaplamak için çocuklar için fiyatları değiştirme ebeveynin).

WooCommerce koduna kazma, ben hangi yöntemin fiyatları geçici oluşturmak bulduk: Bu oluyor read_price_data()bulunan wp-content/plugins/woocommerce/includes/data-stores/class-wc-product-variable-data-store-cpt.php. Ama onu bir ürün veya varyasyon nesnesinde çağırmak için Cron Job betiğim olarak adlandırmanın bir yolunu bulamıyorum.

Bu görev için çözümün farkında mısınız?

Saygılarımla.

Yanıtlar

1 LoicTheAztec Aug 20 2020 at 04:13

Önbelleğe alınan varyasyon fiyatlarında yer alan 3 filtre kancası şunlardır:

  • woocommerce_variation_prices_price
  • woocommerce_variation_prices_regular_price
  • woocommerce_variation_prices_sale_price

Önbelleğe alınan fiyatları yeniden oluşturmak için şu kancalarda kullanabilirsiniz:

wc_delete_product_transients( $variation->get_id() );

Ancak web sitesi performansınızı yavaşlatacaktır.

Woocommerce 3'ten bu yana tanıtılan woocommerce_get_variation_prices_hashfiltre kancası, bu kancalar tetiklendiğinde ilgili geçişleri silmeden, önbelleğe alınmış fiyatları çok daha verimli bir şekilde yenilemeye izin verecektir.

Belgeler ve ilgili konu:

  • Önbelleğe alma ve dinamik fiyatlandırma - get_variation_prices yönteminde yapılacak değişiklikler
  • Ürün fiyatlarını WooCommerce 3'te bir kancayla değiştirin
  • woocommerce_get_variation_prices_hashFiltre kancasını kullanan tüm ilgili konular