Regenerar transitorios para definidos $product or $Objetos de variación en WooCommerce
Realmente me pregunto si hay una manera de regenerar todos los transitorios nativos para un producto u objeto de variación dado.
Estoy en un caso en el que muestro precios dinámicos y todo está bien. Pero necesito actualizar los transitorios como wc_prices_{id}
para que tenga en cuenta este nuevo precio personalizado. De lo contrario, la carga de la primera página es horrible (especialmente en la página de la tienda que muestra varios productos a la vez).
Estoy enganchar en woocommerce_product_variation_get_price
, woocommerce_product_variation_get_regular_price
, woocommerce_variation_prices_price
y woocommerce_variation_prices_regular_price
(en pocas palabras, esta modificar sobre la marcha CADA precio único de una página, y si se trata de una matriz que contiene los niños, que cambiar los precios de los niños también para el cálculo de los precios de rango (min / max) del padre).
Al indagar en el código de Woocommerce, encontré qué método genera los precios transitorios: se read_price_data()
encuentra en wp-content/plugins/woocommerce/includes/data-stores/class-wc-product-variable-data-store-cpt.php
. Pero no puedo encontrar una manera de llamarlo mi script Cron Job para llamarlo en un producto o en un objeto de variación.
¿Están al tanto de la solución para esta tarea?
Saludos cordiales.
Respuestas
Los 3 ganchos de filtros involucrados en las variaciones de precios en caché son:
woocommerce_variation_prices_price
woocommerce_variation_prices_regular_price
woocommerce_variation_prices_sale_price
Para regenerar los precios almacenados en caché, puede usar en esos ganchos:
wc_delete_product_transients( $variation->get_id() );
Pero ralentizará el rendimiento de su sitio web.
Introducido desde Woocommerce 3, el
woocommerce_get_variation_prices_hash
gancho de filtro permitirá actualizar los precios de las variaciones en caché de una manera mucho más eficiente, sin eliminar los transitorios relacionados en cualquier momento en que se activen esos ganchos.
Documentación e hilo relacionado:
- Almacenamiento en caché y precios dinámicos: próximos cambios en el método get_variation_prices
- Cambie los precios de los productos a través de un gancho en WooCommerce 3
- Todos los hilos relacionados usando el woocommerce_get_variation_prices_hashgancho de filtro