如何移除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
相关产品推荐
相关产品推荐

