Score:0

วิธีการรีเฟรชและโหลดซ้ำ (ด้วย ajax?) บานหน้าต่างชำระเงินคำสั่งซื้อและการคำนวณคำสั่งซื้อโดยไม่ขึ้นกับการรีเฟรชตะกร้าสินค้า (เช่น การเปลี่ยนแปลงที่อยู่สำหรับการเรียกเก็บเงิน)

ธง fr

ฉันมีปัญหาดังต่อไปนี้:

ระหว่างการชำระเงิน ลูกค้าของฉันต้องกรอกที่อยู่สำหรับการเรียกเก็บเงิน (อย่างน้อยในครั้งแรก) เพื่อคำนวณอัตราภาษีมูลค่าเพิ่มและราคารวม การคำนวณเพิ่มเติมจะทำผ่านตัวประมวลผลคำสั่งหลังจากนั้น จนถึงตอนนี้มันใช้งานได้ดี

ปัญหาของฉันคือ การรีเฟรชคำสั่งซื้อของรถเข็นไม่รีเฟรชบานหน้าต่างชำระเงิน (เช่น สรุปคำสั่งซื้อ) ผ่าน AJAX เมื่อประเทศที่เรียกเก็บเงิน (และอาจรวมถึงอัตราภาษีมูลค่าเพิ่มที่ถูกต้องด้วย) มีการเปลี่ยนแปลง ผู้ใช้ต้องโหลดหน้าซ้ำในเบราว์เซอร์หรือต้องส่งแบบฟอร์มเพื่อดูผลกระทบ แม้ว่าคำสั่งจะได้รับการรีเฟรช (และคำนวณใหม่) อยู่เบื้องหลังแล้วก็ตาม

  1. ฉันจะบังคับให้รีเฟรชรถเข็นและคำนวณใหม่ผ่านตัวประมวลผลคำสั่งซื้อที่กำหนดเองของฉัน โดยไม่ขึ้นกับช่วงเวลารีเฟรชคำสั่งซื้อในรถเข็นได้อย่างไร
  2. ฉันจะทริกเกอร์การโหลดซ้ำสำหรับบานหน้าต่างการชำระเงินของฉันได้อย่างไร (ในกรณีที่ดีที่สุดผ่าน AJAX เนื่องจาก UX ที่ดีกว่า) เพื่อให้ผู้ใช้เห็นการเปลี่ยนแปลงได้ทันเวลา

ฉันพบว่ามี hooks สำหรับสิ่งนั้นใน D7 แต่ใน D8/D9 hooks และบริการดูเหมือนจะไม่มีอยู่อีกต่อไป (เช่น commerce_cart_order_refresh() - ดู: ฉันจะคำนวณยอดรวมการสั่งซื้อใหม่โดยทางโปรแกรมได้อย่างไรหลังจากเปลี่ยนประเทศที่เรียกเก็บเงิน ).

Score:1
ธง kz

คุณต้องการรีเฟรชเนื้อหาบางส่วนในหน้าเว็บที่ไม่ได้เป็นส่วนหนึ่งของแบบฟอร์มการชำระเงินใช่หรือไม่ โดยทั่วไปสามารถทำได้โดยใช้ Ajax callback และคำสั่ง Ajax callback อย่างน้อยหนึ่งคำสั่ง:

https://www.drupal.org/docs/drupal-apis/ajax-api/core-ajax-callback-commands

คุณจะต้องเพิ่ม Ajax callback ในช่องประเทศโดยใช้ a form_alter()และในการเรียกกลับนี้จะส่งคืนคำสั่ง Ajax ที่จำเป็นในการแทนที่เนื้อหาเป้าหมาย ซึ่งเลือกโดยคลาสหรือรหัส

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา