우커머스: 쿠폰 적용/제거 시 에이잭스를 비활성화하는 방법?
우커머스 기반 매장에서는 카트와 체크아웃 페이지를 하나로 합쳤는데 잘 작동하지만 쿠폰을 지우려고 하면 문제가 발생합니다.쿠폰은 AJAX 처리와 함께 카트에서 제거되므로 제거가 완료되면 페이지가 다시 로드되지 않으며 쿠폰은 적용된 대로 계속 표시됩니다(그러나 실제로는 제거됨).그래서 쿠폰 기능 적용/제거를 위해 AJAX를 비활성화해야 합니다.
이 코드를 테마의 기능에 추가하려고 했습니다.php:
function disable_checkout_script() {
wp_dequeue_script( 'wc-checkout' );
}
add_action( 'wp_enqueue_scripts', 'disable_checkout_script' );
제 문제를 해결해 주지만, 이 코드는 체크아웃 페이지에서 ALL AJAX를 비활성화하고, 쿠폰 적용/제거에 대해서만 AJAX를 비활성화하고 빌링/배송 필드에 대한 검증과 같은 또 다른 AJAX 처리를 저장하고 싶습니다.
제발 도와주세요, 안타깝게도 저는 JS 전문가가 아닙니다.안녕하세요!
JS 파일에서 이벤트 핸들러를 몇 개 제거해야 합니다.쿠폰 제거 버튼을 누를 때와 쿠폰 양식을 제출할 때 이벤트가 발생합니다.
관련 라인은 의 381 - 383입니다.woocommerce/assets/js/frontend/checkout.js(WooCommerce는 이 파일의 축소 버전을 로드합니다.)
$( document.body ).on( 'click', 'a.showcoupon', this.show_coupon_form );
$( document.body ).on( 'click', '.woocommerce-remove-coupon', this.remove_coupon );
$( 'form.checkout_coupon' ).hide().submit( this.submit );
2번과 3번을 제거해야 합니다.
JS 파일에 다음 코드를 추가합니다.
$( document.body ).off( 'click', '.woocommerce-remove-coupon', wc_checkout_coupons.remove_coupon );
$( 'form.checkout_coupon' ).off( 'submit' );
AJAX를 비활성화하고 체크아웃 페이지를 강제로 새로 고치기 위한 솔루션을 찾고 있는 다른 사람들을 위해, 우커머스 플러그인 내에서 핵심 기능 파일을 편집할 필요 없이 내게 효과가 있다는 것을 발견했습니다.그러나 실제로 AJAX를 사용하지 않도록 설정하지는 않지만 제거 시 전체 체크아웃 페이지를 새로 고칩니다.
jQuery 코드:그러면 remove 버튼을 클릭한 후 400ms 후에 페이지를 강제로 새로 고쳐 AJAX remove 명령이 먼저 실행되도록 합니다.
jQuery(document).on('click', '.woocommerce-remove-coupon', function () {
setTimeout(
function () {
window.location.href = window.location.href;
}, 400);
});
그런 다음 .js 파일을 체크아웃 페이지에 연결합니다(테마의 기능에 추가).php 또는 plugin을 만듭니다.
이런 식으로 했습니다.
add_action( 'woocommerce_after_checkout_form', 'remove_coupon');
function remove_coupon() {
wp_enqueue_script('remove-coupon', plugins_url('remove-coupon.js', __FILE__));
}
언급URL : https://stackoverflow.com/questions/30626895/woocommerce-how-to-disable-ajax-on-apply-remove-coupon
'programing' 카테고리의 다른 글
| 특정 날짜가 있는 레코드를 선택하는 MySql 쿼리 (0) | 2023.10.05 |
|---|---|
| Scala Spark에서 csv 파일을 데이터 프레임으로 읽는 동안 스키마 제공 (0) | 2023.10.05 |
| 접두사(++x) 및 후픽스(x++) 작업은 어떻게 작동합니까? (0) | 2023.10.05 |
| Carma Jasmine 테스트 실행에서 각도 모듈을 사용할 수 (0) | 2023.10.05 |
| 동적으로 생성된 요소에 대한 jQuery "on create" 이벤트 (0) | 2023.10.05 |