Régénérer les transitoires pour des $product or $Objets de variation dans WooCommerce

Aug 19 2020

Je me demande vraiment s'il existe un moyen de régénérer tous les transitoires natifs pour un produit ou un objet de variation donné.

Je suis dans un cas où j'affiche des prix dynamiques, et tout va bien. Mais j'ai besoin de mettre à jour les transitoires comme wc_prices_{id}pour qu'il prenne en compte ce nouveau prix personnalisé. Sinon, le chargement de la première page est horrible (surtout sur la page de la boutique affichant plusieurs produits à la fois).

J'accrochage dans woocommerce_product_variation_get_price, woocommerce_product_variation_get_regular_price, woocommerce_variation_prices_priceet woocommerce_variation_prices_regular_price(en bref, cette modification à la volée CHAQUE PRIX UNIQUE d'une page, et si elle est un parent contenant les enfants, il modifier les prix des enfants aussi pour calculer les prix de gamme (min / max) du parent).

En creusant dans le code Woocommerce, j'ai trouvé dans quelle méthode générer les prix transitoires: il se read_price_data()trouve dans wp-content/plugins/woocommerce/includes/data-stores/class-wc-product-variable-data-store-cpt.php. Mais je ne trouve pas de moyen de l'appeler mon script Cron Job pour l'appeler sur un objet produit ou variante.

Êtes-vous au courant de la solution pour cette tâche?

Sincères amitiés.

Réponses

1 LoicTheAztec Aug 20 2020 at 04:13

Les 3 crochets de filtres impliqués dans les variations de prix mis en cache sont:

  • woocommerce_variation_prices_price
  • woocommerce_variation_prices_regular_price
  • woocommerce_variation_prices_sale_price

Pour régénérer les prix mis en cache, vous pouvez utiliser ces crochets:

wc_delete_product_transients( $variation->get_id() );

Mais cela ralentira les performances de votre site Web.

Introduit depuis Woocommerce 3, le woocommerce_get_variation_prices_hashhook de filtre permettra de rafraîchir les variations de prix en cache de manière beaucoup plus efficace, sans supprimer les transitoires associés à chaque fois que ces hooks sont déclenchés.

Documentation et fil associé:

  • Mise en cache et tarification dynamique - modifications à venir de la méthode get_variation_prices
  • Changer les prix des produits via un hook dans WooCommerce 3
  • Tous les fils associés utilisant le woocommerce_get_variation_prices_hashcrochet de filtre