You need to enable JavaScript to run this app. 如何解决Woocommerce免运费配送方式下Cash On Delivery不显示的问题
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Woocommerce免运费配送方式下Cash On Delivery不显示的问题

WooCommerce免邮模式下货到付款(COD)不显示解决方法

方法1:核对配置匹配规则

  • 首先进入WooCommerce > 设置 > 配送页面,检查你配置的Free Shipping配送方式对应的适用区域,需要和Cash On Delivery支付方式设置里的「适用国家/地区」范围完全一致。如果免邮配送仅开放给部分区域、COD的适用范围更小,对应区域下就不会展示COD选项。
  • 回到WooCommerce > 设置 > 支付 > Cash On Delivery配置页,确认「启用于配送方式」勾选框里,你所有启用的Free Shipping选项都被选中。部分站点会配置多个不同门槛的免邮方式,需要逐一勾选,你提交的配置界面参考如下:
    配置界面截图
  • 检查是否有配置最小订单金额限制:如果COD设置了最低订单金额要求,而符合免邮门槛的订单金额没达到COD最低要求,也会隐藏COD选项。

方法2:添加代码片段强制兼容

如果上述配置全部正确仍不生效,通常是主题或第三方配送插件的规则冲突导致,可以将以下代码添加到当前主题的functions.php文件,或者用Code Snippets插件插入运行:

add_filter( 'woocommerce_available_payment_gateways', 'enable_cod_for_free_shipping', 99 );
function enable_cod_for_free_shipping( $available_gateways ) {
    if ( is_admin() ) return $available_gateways;
    if ( ! WC()->cart ) return $available_gateways;
    
    // 获取当前用户选择的配送方式
    $chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
    $chosen_shipping = $chosen_methods[0] ?? '';
    
    // 检测为免邮配送时强制启用COD
    if ( str_contains( $chosen_shipping, 'free_shipping' ) && isset( $available_gateways['cod'] ) ) {
        $available_gateways['cod']->enabled = 'yes';
    }
    return $available_gateways;
}

添加后清空站点缓存和购物车缓存,重新下单测试即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 23:15:08