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

WooCommerce订单总金额为0美元时显示支票支付选项的代码问题

WooCommerce 零元订单启用支票支付网关代码修正

你之前代码中的set()写法属于语法错误,WooCommerce的可用支付网关参数为关联数组结构,直接给对应索引赋值支票网关实例即可完成启用。以下是可直接使用的完整修正代码:

function payment_gateway_enable_check( $available_gateways ) {
    // 跳过后台场景,避免影响支付配置页面逻辑
    if ( is_admin() ) {
        return $available_gateways;
    }

    $cart_total = (float) WC()->cart->total;
    // 购物车总金额为0且支票网关未在可用列表时,手动添加
    if ( $cart_total === 0 && !isset( $available_gateways['check'] ) ) {
        $registered_gateways = WC()->payment_gateways()->payment_gateways();
        // 仅当后台已启用支票网关时执行添加操作,避免报错
        if ( isset( $registered_gateways['check'] ) ) {
            $available_gateways['check'] = $registered_gateways['check'];
        }
    }

    return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_enable_check' );

主要优化点

  • 替换了废弃的全局$woocommerce调用,改用WooCommerce官方推荐的WC()辅助函数获取实例,兼容性更强
  • 新增后台场景跳过逻辑,不会干扰后台支付配置页面的正常展示
  • 增加了网关存在性校验,只有后台已启用支票支付网关时才会执行添加操作,避免出现调用不存在实例的报错
  • 对购物车总金额做了浮点型转换,避免因字符串格式的金额数值导致判断失效

注意

使用前请先进入WooCommerce后台「设置」-「支付」页面,确认支票支付网关处于启用状态,否则代码不会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:27:03