정의 된 과도 상태 재생성 $product or $WooCommerce의 변형 객체
주어진 제품 또는 변형 개체에 대한 모든 기본 과도 상태를 재생성하는 방법이 있는지 정말 궁금합니다.
나는 동적 가격을 표시하고 모든 것이 괜찮은 경우입니다. 하지만 wc_prices_{id}
이 새로운 맞춤 가격을 고려하기 위해 과도 상태를 업데이트해야합니다 . 그렇지 않은 경우 첫 페이지로드가 끔찍합니다 (특히 한 번에 여러 제품을 표시하는 상점 페이지에서).
나는 후킹하고있어 woocommerce_product_variation_get_price
, woocommerce_product_variation_get_regular_price
, woocommerce_variation_prices_price
그리고 woocommerce_variation_prices_regular_price
짧은에,이 즉석에서 수정 ( EVERY SINGLE의 가격 페이지, 그리고 어린이를 포함하는 부모의 경우, 너무 범위 가격 (최소 / 최대)를 계산하기 위해 아이들의 가격을 변경 부모의).
Woocommerce 코드를 파헤칠 때 어떤 방법이 일시적인 가격을 생성하는지 발견 read_price_data()
했습니다 wp-content/plugins/woocommerce/includes/data-stores/class-wc-product-variable-data-store-cpt.php
. 그러나 제품 또는 변형 개체에서 호출하기 위해 내 Cron 작업 스크립트라고 부르는 방법을 찾을 수 없습니다.
이 작업에 대한 해결책을 알고 있습니까?
감사합니다.
답변
변형 캐시 된 가격과 관련된 3 가지 필터 후크는 다음과 같습니다.
woocommerce_variation_prices_price
woocommerce_variation_prices_regular_price
woocommerce_variation_prices_sale_price
캐시 된 가격을 다시 생성하려면 해당 후크에서 사용할 수 있습니다.
wc_delete_product_transients( $variation->get_id() );
그러나 웹 사이트 성능이 저하됩니다.
Woocommerce 3 이후에 도입 된
woocommerce_get_variation_prices_hash
필터 후크를 사용하면 해당 후크가 트리거 될 때마다 관련 과도 현상을 삭제하지 않고 훨씬 더 효율적인 방식으로 변형 캐시 된 가격을 새로 고칠 수 있습니다.
문서 및 관련 스레드 :
- 캐싱 및 동적 가격 – get_variation_prices 메소드에 대한 향후 변경 사항
- WooCommerce 3에서 후크를 통해 제품 가격 변경
- woocommerce_get_variation_prices_hash필터 후크를 사용하는 모든 관련 스레드