Magento 2: Cách phát hiện thay đổi bước thanh toán


9

Tôi đang cố gắng tìm ra phương pháp tốt nhất để phát hiện sự thay đổi từng bước trong thanh toán của Magento 2. Ví dụ: đi từ chi tiết vận chuyển đến thanh toán, hoặc ngược lại.

Tôi đã thực hiện một số thao tác đào và trong đó vendor/magento/module-checkout/view/frontend/web/js/model/step-navigator.jstôi có thể sử dụng next()nút nào bắn vào nút tiếp tục và navigateTo()sẽ kích hoạt khi người dùng nhấp trực tiếp vào bước thanh toán - nhưng cả hai phương pháp có vẻ khá khó khăn, phải có cách sạch hơn để phát hiện thay đổi bước bất kể và bước nào .

Tôi đã hy vọng cho một stepChange()chức năng hoặc một cái gì đó tương tự kích hoạt bất cứ khi nào thay đổi bước thanh toán xảy ra.

Câu hỏi của tôi:

Phương pháp tốt nhất để kích hoạt JS tùy chỉnh của tôi khi thay đổi bước thanh toán xảy ra là gì?

Câu trả lời:


12

Bạn có thể đăng ký xử lý khi mã băm thay đổi, nghĩa là $(window).hashchange(callBack).

Đây là những gì xảy ra trong Magento_Checkout/view/frontend/web/js/view/progress-bar.js:

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

Điều này khiến stepNavigator.handleHashhàm thực thi bất cứ khi nào bước thay đổi vì thay đổi các bước sử dụng nexthoặc navigateTothay đổi hàm băm của cửa sổ.


Cảm ơn Aaron, lời xin lỗi tôi đã không đưa ra tiền thưởng đầy đủ mà tôi không biết có thời hạn cho nó.
Ben Crook

0

Câu hỏi hay. Tôi không biết cách tốt nhất là gì (tôi quan tâm đến các câu trả lời khác) nhưng tôi nghĩ rằng việc thêm một sự kiện tùy chỉnh vào chức năng .next()hoặc .isProcessed()chuyển qua nó thì bước hiện tại có thể là một giải pháp khá tốt.


1
Tôi không nghĩ thêm nó vào tiếp theo là một ý tưởng hay vì sau đó nó sẽ không hoạt động khi bạn quay lại một bước
Ben Crook
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.