Tanımlanmış geçici akımları yeniden oluşturun $product or $WooCommerce'deki varyasyon Nesneleri
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_price
ve woocommerce_variation_prices_regular_price
Kı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
Ö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_hash
filtre 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