สร้างชั่วคราวสำหรับกำหนด $product or $วัตถุรูปแบบใน WooCommerce
ฉันสงสัยจริงๆว่ามีวิธีสร้างชั่วคราวชั่วคราวทั้งหมดสำหรับผลิตภัณฑ์หรือวัตถุรูปแบบที่กำหนดขึ้นมาใหม่หรือไม่
ฉันอยู่ในกรณีที่ฉันแสดงราคาแบบไดนามิกและทุกอย่างเรียบร้อยดี แต่ฉันต้องอัปเดตชั่วคราวเช่นwc_prices_{id}
เพื่อให้คำนึงถึงราคาที่กำหนดเองใหม่นี้ หากไม่เป็นเช่นนั้นการโหลดหน้าแรกจะแย่มาก (โดยเฉพาะในหน้าร้านค้าที่แสดงสินค้าหลายรายการพร้อมกัน)
ฉัน hooking เข้าwoocommerce_product_variation_get_price
, woocommerce_product_variation_get_regular_price
, woocommerce_variation_prices_price
และwoocommerce_variation_prices_regular_price
(ในระยะสั้นนี้แก้ไขได้ทันทีทุกเดียวราคาของหน้าและถ้ามันเป็นผู้ปกครองที่มีเด็กมันเปลี่ยนแปลงราคาสำหรับเด็กเกินไปในการสั่งซื้อในการคำนวณราคาช่วง (นาที / สูงสุด) ของผู้ปกครอง)
เมื่อขุดลงไปในโค้ด Woocommerce ฉันพบว่าวิธีใดที่สร้างราคาชั่วคราว: read_price_data()
อยู่ในwp-content/plugins/woocommerce/includes/data-stores/class-wc-product-variable-data-store-cpt.php
. แต่ฉันไม่สามารถหาวิธีเรียกมันว่าสคริปต์ Cron Job ของฉันเพื่อเรียกมันบนผลิตภัณฑ์หรือวัตถุรูปแบบได้
พวกคุณรู้วิธีแก้ปัญหาสำหรับงานนี้หรือไม่?
ขอแสดงความนับถือ.
คำตอบ
ตัวกรอง 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ตัวกรอง