Woocommerce根据付款方式更改总价

时间:2020-04-29 02:40:51

标签: wordpress woocommerce

我想在结帐页面上更改总价,具体取决于付款方式,我有两种付款方式 如果客户选择货到付款总价成为总计* 0.015 +总计 否则,总价保持不变

1 个答案:

答案 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;
}