สร้างชั่วคราวสำหรับกำหนด $product or $วัตถุรูปแบบใน WooCommerce

Aug 19 2020

ฉันสงสัยจริงๆว่ามีวิธีสร้างชั่วคราวชั่วคราวทั้งหมดสำหรับผลิตภัณฑ์หรือวัตถุรูปแบบที่กำหนดขึ้นมาใหม่หรือไม่

ฉันอยู่ในกรณีที่ฉันแสดงราคาแบบไดนามิกและทุกอย่างเรียบร้อยดี แต่ฉันต้องอัปเดตชั่วคราวเช่น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 ของฉันเพื่อเรียกมันบนผลิตภัณฑ์หรือวัตถุรูปแบบได้

พวกคุณรู้วิธีแก้ปัญหาสำหรับงานนี้หรือไม่?

ขอแสดงความนับถือ.

คำตอบ

1 LoicTheAztec Aug 20 2020 at 04:13

ตัวกรอง 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ตัวกรอง