Buat ulang transien untuk ditentukan $product or $Variasi Objek di WooCommerce

Aug 19 2020

Saya benar-benar ingin tahu apakah ada cara untuk membuat ulang semua transien asli untuk produk atau objek variasi tertentu.

Saya dalam kasus di mana saya menampilkan harga dinamis, dan semuanya baik-baik saja. Tetapi saya perlu memperbarui transien seperti wc_prices_{id}agar dapat memperhitungkan harga kustom baru ini. Jika tidak, pemuatan halaman pertama sangat buruk (terutama pada halaman toko yang menampilkan beberapa produk sekaligus).

Saya mengaitkan ke woocommerce_product_variation_get_price, woocommerce_product_variation_get_regular_price, woocommerce_variation_prices_pricedan woocommerce_variation_prices_regular_price(singkatnya, ini memodifikasi dengan cepat SETIAP HARGA halaman, dan jika itu orang tua yang berisi anak-anak, itu mengubah harga untuk anak-anak juga untuk menghitung harga kisaran (min / max) dari orang tua).

Saat menggali kode Woocommerce, saya telah menemukan metode mana yang menghasilkan harga sementara: itu read_price_data()terletak di wp-content/plugins/woocommerce/includes/data-stores/class-wc-product-variable-data-store-cpt.php. Tetapi saya tidak dapat menemukan cara untuk menyebutnya skrip Cron Job saya untuk menyebutnya pada produk atau objek variasi.

Apakah kalian mengetahui solusi untuk tugas ini?

Salam.

Jawaban

1 LoicTheAztec Aug 20 2020 at 04:13

3 kait filter yang terlibat dalam variasi harga cache adalah:

  • woocommerce_variation_prices_price
  • woocommerce_variation_prices_regular_price
  • woocommerce_variation_prices_sale_price

Untuk meregenerasi harga cache, Anda dapat menggunakan hook tersebut:

wc_delete_product_transients( $variation->get_id() );

Tetapi itu akan memperlambat kinerja situs web Anda.

Diperkenalkan sejak Woocommerce 3, woocommerce_get_variation_prices_hashhook filter akan memungkinkan untuk menyegarkan variasi harga yang di-cache dengan cara yang jauh lebih efisien, tanpa menghapus transien terkait kapan pun hook tersebut terpicu.

Dokumentasi dan utas terkait:

  • Caching dan harga dinamis - perubahan mendatang pada metode get_variation_prices
  • Ubah harga produk melalui hook di WooCommerce 3
  • Semua utas terkait menggunakan woocommerce_get_variation_prices_hashkait filter