Magento 2: วิธีการตรวจหาการเปลี่ยนแปลงขั้นตอนการชำระเงิน


10

ฉันกำลังพยายามหาวิธีที่ดีที่สุดในการตรวจสอบการเปลี่ยนแปลงขั้นตอนในการชำระเงินของ Magento 2 เช่นไปจากรายละเอียดการจัดส่งการชำระเงินหรือในทางกลับกัน

ฉันได้ทำบางขุดและvendor/magento/module-checkout/view/frontend/web/js/model/step-navigator.jsฉันสามารถใช้next()ซึ่งไฟที่ปุ่มดำเนินการต่อและnavigateTo()ที่ทำงานเมื่อผู้ใช้คลิกที่ checkoutstep โดยตรง - แต่ทั้งสองวิธีดูเหมือนค่อนข้าง hacky จะต้องมีวิธีการทำความสะอาดในการตรวจสอบการเปลี่ยนแปลงขั้นตอนโดยไม่คำนึงถึงวิธีการ และขั้นตอนใด

ฉันหวังว่าจะมีstepChange()ฟังก์ชั่นหรือสิ่งที่คล้ายกันที่จะเกิดไฟไหม้เมื่อมีการเปลี่ยนแปลงขั้นตอนการชำระเงินเกิดขึ้น

คำถามของฉัน:

วิธีที่ดีที่สุดในการทริกเกอร์ JS ที่กำหนดเองของฉันคืออะไรเมื่อมีการเปลี่ยนแปลงขั้นตอนการชำระเงิน

คำตอบ:


13

$(window).hashchange(callBack)คุณสามารถลงทะเบียนการจัดการเมื่อรหัสกัญชาที่มีการเปลี่ยนแปลงคือ

นี่คือสิ่งที่เกิดขึ้นในMagento_Checkout/view/frontend/web/js/view/progress-bar.js:

$(window).hashchange(_.bind(stepNavigator.handleHash, stepNavigator));

สิ่งนี้ทำให้stepNavigator.handleHashฟังก์ชันดำเนินการเมื่อใดก็ตามที่มีการเปลี่ยนแปลงขั้นตอนเนื่องจากการเปลี่ยนขั้นตอนการใช้nextหรือnavigateToเปลี่ยนแฮชของหน้าต่าง


ขอบคุณแอรอนขอโทษที่ฉันไม่ได้ให้เงินเต็มจำนวนฉันไม่รู้ว่ามีกำหนดส่ง
Ben Crook

0

คำถามที่ดี. ฉันไม่ทราบว่าเป็นวิธีที่ดีที่สุด (ฉันสนใจคำตอบอื่น ๆ ) แต่ฉันคิดว่าการเพิ่มเหตุการณ์ที่กำหนดเองไปยัง.next()หรือ.isProcessed()ฟังก์ชั่นและส่งผ่านไปยังขั้นตอนปัจจุบันอาจเป็นทางออกที่ดีงาม


1
ฉันไม่คิดว่าการเพิ่มลงไปเป็นความคิดที่ดีเพราะจะไม่เกิดขึ้นเมื่อคุณย้อนกลับไป
Ben Crook
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.