我想在结帐页面上更改总价,具体取决于付款方式,我有两种付款方式 如果客户选择货到付款总价成为总计* 0.015 +总计 否则,总价保持不变
答案 0 :(得分:0)
代码在活动子主题(或主题)的functions.php文件中或任何插件文件中。该代码已经过测试并且可以正常工作。
所有付款方式仅在“结帐”页面上可用。
add_action('woocommerce_cart_calculate_fees','custom_handling_fee',10,1);
function custom_handling_fee($cart){
if(is_admin() && ! defined('DOING_AJAX'))
return;
if('cod' === WC()->session->get('chosen_payment_method')){
$extra_cost = 0.015;
$cart_total = $cart->cart_contents_total;
$fee = $cart_total * $extra_cost;
if($fee != 0)
$cart->add_fee('COD Charge',$fee,true);
}
}
您需要执行以下操作以刷新付款方式更改后的结帐,以使其生效:
add_action( 'wp_footer','custom_checkout_jqscript');
function custom_checkout_jqscript(){
if(is_checkout() && ! is_wc_endpoint_url()):
?>
<script type="text/javascript">
jQuery( function($){
$('form.checkout').on('change', 'input[name="payment_method"]', function(){
$(document.body).trigger('update_checkout');
});
});
</script>
<?php
endif;
}