[英]Auto update cart on quantity change in Woocommerce cart page
使用“貨到付款”時,我有 5 美元的費用會被添加到訂單總額中。 切換到“銀行轉帳”時應取消此費用。 當我通過更改帳單郵政編碼觸發訂單審核表進行更新時,這筆費用就會被刪除。 但我還需要在選擇不同的支付網關時觸發它。
這是我當前的代碼:
<script>
$('#payment_method_bacs').on('click', function() {
$( 'body' ).trigger( 'update_checkout' );})
</script>
有任何想法嗎?
您可以按照此通過 AJAX 更新購物車。 這是鏈接
jQuery(function( $ ) {
$( "form.checkout" ).on( "click", "input.qty", function( e ) {//modify this to payment gateway radio button selection
var data = {
action: 'update_order_review',
security: wc_checkout_params.update_order_review_nonce,
post_data: $( 'form.checkout' ).serialize()
};
jQuery.post( add_quantity.ajax_url, data, function( response )
{
$( 'body' ).trigger( 'update_checkout' );
});
});
});
在上面的代碼中,而不是數量更新,只需添加您的付款網關單選按鈕選擇的更改事件
由於結賬的這部分(支付方式)是在后台更新的,所以你應該將點擊綁定到“body”,例如:
jQuery(document).ready(function(){
jQuery('body').on('click', 'ul.payment_methods li', function(){
console.log('payment method clicked');
});
});
(未經測試!)
只是為了讓這個問題對將來在這里閱讀的任何人都有用..這是最終為我工作的腳本。 我從這個有用的指南中找到了答案。
jQuery('div.woocommerce').on('click', 'input.qty', function(){
jQuery("[name='update_cart']").trigger("click");
});
為了避免客戶點擊這么多次,讓 ajax 調用這么多次:
jQuery( function( $ ) {
let timeout;
$('body').on('change', 'input.qty', function(){
if ( timeout !== undefined ) {
clearTimeout( timeout );
}
timeout = setTimeout(function() {
$("[name='update_cart']").trigger("click");
}, 800 );
});
} );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.