You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除WooCommerce购物车页自定义费用提示,仅在结账页显示COD手续费

解决WooCommerce仅在结账页显示COD手续费的问题
  • 核心处理逻辑:利用WooCommerce内置的is_checkout()函数判断当前页面是否为结账页,仅在该页面下触发COD手续费的添加逻辑,同时保留原有的管理员环境与AJAX操作判断,以及支付方式校验。

修改后的完整代码如下:

<?php
add_action('woocommerce_cart_calculate_fees', 'wcc_apply_cod_payment_gateway_fee');
function wcc_apply_cod_payment_gateway_fee(){
    
    if (is_admin() && !defined('DOING_AJAX')) {
        return;
    }

    // 仅在结账页执行手续费添加逻辑
    if (!is_checkout()) {
        return;
    }
 
    $chosen_payment_method = WC()->session->get('chosen_payment_method');
    if ($chosen_payment_method == 'cod') {
        $cart_total = WC()->cart->cart_contents_total;
        $amount = ($cart_total * 3)/100;
        $amount = '+'.$amount;
        
        $label = __( 'Cod 3% Fee', 'txtdomain' );
        WC()->cart->add_fee( $label, $amount, true, 'standard' );
    }
}
  • 关键代码说明:
    • 新增!is_checkout()判断:当当前页面不是结账页时直接返回,跳过手续费计算逻辑,确保购物车页不会显示该额外费用。
    • 保留原管理员环境判断:避免在后台操作时触发不必要的费用计算,保证后台操作不受影响。
    • 仅在用户选择COD支付方式且处于结账页时,才计算并添加3%的手续费。

内容的提问来源于stack exchange,提问作者ak digital

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 09:24:43