如果用户选择付款“货到付款”,我需要禁用特定的送货方式。 问题是,只有每次重置 WooCommerce瞬态并刷新时,以下代码才有效。 它不适用于来回的用户选择。 p>
add_filter('woocommerce_package_rates','alter_shipping_methods',100);
ntort alter_shipping_methods($ rates){
$ chosen_gateway = WC() - > session- > chosen_payment_method;
//如果付款是货到付款,请删除特定的送货
如果($ chosen_gateway =='cod'){
foreach($ rate as $ rate_id => $ rate){
if($ rate-> label ==='Hrvatskapošta'){
unset($ rates [$ rate_id]);
}
}
}
返回$ rate;
}
code> pre>
我确实有这个代码可以触发,当我点击选项时,我会在控制台中看到输出。 p>
\ n
jQuery(document.body).on('change','input [name =“payment_method”]',function(){
console.log('Payment method changed');
jQuery('body')。触发器('update_checkout');
});
code> pre>
我试过这个,它不起作用 p >
function action_woocommerce_checkout_update_order_review($ array,$ int){\ n WC() - > cart-> calculate_shipping();
return;
}
add_action('woocommerce_checkout_update_order_review','action_woocommerce_checkout_update_order_review',10,2);
code> pre>
我也尝试过调用PHP函数的自定义AJAX调用,在此过滤器中,没有结果 p>
add_filter('woocommerce_package_rates','alter_shipping_methods',100 );
code> pre>
我接下来应该尝试什么? p>
div>