如果选择一个,则如何让一个单选按钮组更新WooCommerce Checkout页面上结帐总额中列出的数据,然后另一个。单选按钮A的选择需要增加0.05%作为附加费,而单选按钮B将增加0.10%。
我知道我可以使用以下内容添加静电附加费:
add_action( 'woocommerce_cart_calculate_fees','woocommerce_custom_surcharge' );
function woocommerce_custom_surcharge() {
global $woocommerce;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
// $percentage is what will change based on which button is selected A or B
// however this is not executed after the page is loaded
$percentage = 0.05;
$surcharge = ( $woocommerce->cart->cart_contents_total + $woocommerce->cart->shipping_total ) * $percentage;
$woocommerce->cart->add_fee( 'Service Fee', $surcharge, true, 'standard' );
}
答案 0 :(得分:0)
也许这样的事情会让你开始。我认为它不会自动添加费用,但我没有对其进行测试,这只是一个想法:
jQuery(document).ready(function($){
if ( typeof wc_checkout_form === 'undefined' || ) {
return false;
}
$checkout_form = $( 'form.checkout' );
$checkout_form.on( 'change', '.your_radio_buttons_class', function(){
wc_checkout_form.wc_checkout_form();
});
});
我相信您需要使用checkout script,因此您需要确保在checkout.js
之后加载自定义脚本。
答案 1 :(得分:0)
所以我通过使用AJAX,处理按钮更改并调用设置WC-> session-> set变量的PHP回调来解决这个问题。然后在AJAX中发出一个location.reload,强制functions.php重新加载。在我的附加费过滤器中,我检查了会话变量,并根据会话值添加了费用。