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

TillPayments WooCommerce插件:如何在客户支付页面显示所有支付网关

WooCommerce支付页面显示所有可用网关的修复方案

问题背景

我的WooCommerce店铺配置了多款支付网关(含自定义网关),适配不同场景。其中“Pay Later”网关已稳定运行8年,允许客户下单后先收发票,再由财务团队通过EFT或公司信用卡完成支付。

集成TillPayments替代其他支付服务后,发现客户支付页面仅显示结账时所选的网关:因为后续支付的订单都选了“Pay Later”,客户返回支付时只能看到这个选项,陷入循环。测试其他网关也有同样问题——结账选哪款,支付页面就只显示哪款。

推测问题出在till-payments-creditcard.php的这段代码:

public function hide_payment_gateways_on_pay_for_order_page($available_gateways)
{
    if (is_checkout_pay_page()) {
        global $wp;
        $this->order = new WC_Order($wp->query_vars['order-pay']);
        foreach ($available_gateways as $gateways_id => $gateways) {
            if ($gateways_id !== $this->order->get_payment_method()) {
                unset($available_gateways[$gateways_id]);
            }
        }
    }

    return $available_gateways;
}

尝试过移除这段代码,或者把判断条件改成$gateways_id == $this->order->get_payment_method(),但要么无网关显示,要么触发错误。

核心需求:让客户支付页面显示所有可用的支付网关

修复方案

方案1:移除限制逻辑的钩子绑定

不需要删除整个函数,找到插件中注册这个钩子的位置(通常在网关类的构造函数或插件初始化代码里),把类似下面的代码注释或删除:

add_filter('woocommerce_available_payment_gateways', array($this, 'hide_payment_gateways_on_pay_for_order_page'));

这样就能完全禁用这个过滤逻辑,支付页面会自动显示所有符合条件的可用网关。

方案2:修改函数内容,直接返回所有网关

如果不想改动钩子注册,直接修改函数本身,去掉过滤逻辑:

public function hide_payment_gateways_on_pay_for_order_page($available_gateways)
{
    // 取消所有过滤,直接返回原始可用网关列表
    return $available_gateways;
}

方案3:自定义过滤规则(可选)

如果需要保留部分限制(比如排除特定网关),可以调整判断逻辑:

public function hide_payment_gateways_on_pay_for_order_page($available_gateways)
{
    if (is_checkout_pay_page()) {
        // 示例:仅排除某个特定网关(替换成你的网关ID)
        // if (isset($available_gateways['pay_later'])) {
        //     unset($available_gateways['pay_later']);
        // }
    }
    return $available_gateways;
}

注意事项

  • 修改插件代码前,务必备份原文件;更稳妥的方式是使用自定义插件或子主题来覆盖这个函数,避免插件更新后修改被覆盖。
  • 测试时确认所有网关的可用性规则(如订单金额、地区限制)正常,避免出现不符合条件的网关被错误显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 11:02:36