
WooCommerce 结账页出现“There are no payment methods available”(没有可用的付款方式),并不等于收款账户一定被封,也不一定要立刻重装插件。这个提示只说明一件事:在当前订单、客户地址和结账页面条件下,WooCommerce 没找到任何符合条件的支付网关。
最快的处理顺序是:先确认支付网关已启用,再检查结账区块兼容性,随后排查币种、国家、配送和订单条件,最后才做插件冲突测试。按这个顺序走,通常不用在后台“盲人摸象”。
先用一分钟判断问题在哪一层
打开 WooCommerce → 设置 → 付款,确认至少有一种付款方式处于启用状态。为了判断问题是支付插件还是结账页面,可以临时启用 WooCommerce 自带的“直接银行转账(BACS)”。它是核心付款方式,不依赖第三方接口。
- BACS 能显示:结账页面本身基本正常,问题多半在 PayPal、Stripe 或其他支付插件的配置与适用条件。
- BACS 也不显示:优先检查 Checkout Block 兼容性、条件规则、缓存、主题或插件冲突。
测试完成后,如果网站不准备使用银行转账,记得将它关闭。这个动作只是诊断,不是让客户真的拿着汇款单来下单。
原因一:支付网关没有启用,或账户连接未完成
进入 WooCommerce → 设置 → 付款,逐项检查:
- 支付插件已经安装并启用;
- 对应付款方式右侧的开关已经打开;
- 插件后台显示账户已连接,而不是“完成设置”“Connect”或“授权已过期”;
- 保存设置后没有出现 API 密钥、商户资料或 Webhook 配置错误;
- 测试模式与正式模式使用的是同一环境的凭据。
例如,PayPal 的 Sandbox Client ID 不能拿去连接 Live 环境;Stripe 测试密钥也不能在正式模式下工作。环境混用时,后台可能看起来“填过了”,结账页却会把网关判定为不可用。
WooCommerce 官方的付款方式说明指出,系统自带银行转账、支票和货到付款等基础网关,第三方网关则由相应扩展提供。先让一个核心网关显示出来,是最省时间的分界测试。可参考 WooCommerce 付款方式选择文档。
原因二:Checkout Block 与支付插件不兼容
这是新版 WooCommerce 最常见、也最容易被忽略的原因。商店使用区块版结账页(Checkout Block),但已启用的支付插件只支持经典结账短代码,于是后台网关看着正常,前台却提示没有可用付款方式。
WooCommerce 官方文档明确说明:如果 Checkout Block 只有不兼容的支付网关,结账页就会显示该警告。处理方法有两个:
方案 A:更新或更换支持 Checkout Block 的支付插件
先升级 WooCommerce、支付插件和主题,并查看支付插件的更新说明或兼容性列表。支付是订单链路里最不适合长期停留在旧版本的部分,能使用官方维护、明确支持区块结账的版本,优先升级。
方案 B:临时切回经典结账
- 进入 页面 → 结账,编辑结账页面;
- 选中 Checkout 区块内部的 Payment Options;
- 在右侧区块设置中选择切换为经典结账;
- 更新页面,并用无痕窗口重新测试。
也可以移除结账区块,加入经典短代码:
[woocommerce_checkout]
切换方法与兼容性说明见 WooCommerce 官方 Cart 与 Checkout 页面文档。如果切回经典结账后付款方式立即出现,原因就已经锁定,不必再去重置收款账户。
原因三:币种、国家或客户地址不符合网关条件
支付网关并不是“启用后对全世界永久显示”。很多本地付款方式只支持指定币种、商户国家、客户账单地址或设备环境。排查时记录以下四项:
- WooCommerce 商店基础国家;
- WooCommerce → 设置 → 常规中的商店币种;
- 测试订单的账单国家与配送国家;
- 支付插件支持的商户地区、结算币种和最低/最高金额。
最直接的测试方法是,把客户地址改成网关官方支持的国家,购物车只保留一个普通商品,再重新计算结账。如果网关出现,说明问题不是插件“坏了”,而是适用条件没有匹配。
WooPayments 官方也说明,不同本地付款方式会受国家、地区、币种和设备限制。可对照 WooPayments 支持的付款方式,不要只看网关名称就默认它适用于所有买家。
原因四:配送区域没匹配,连带让付款方式消失
对于实体商品,支付条件经常和配送方式绑定。例如货到付款通常只对指定配送方式开放;某些条件插件也会在没有合适配送方式时隐藏支付网关。
进入 WooCommerce → 设置 → 配送 → 配送区域,检查:
- 客户地址是否能命中一个配送区域;
- 该区域是否至少有一个已启用的配送方式;
- 更具体的区域是否排在更宽泛的区域前面;
- “世界其他地区”是否需要设置兜底配送方式;
- 货到付款设置中是否只勾选了当前订单无法使用的配送方式。
WooCommerce 会从上到下匹配第一个符合客户地址的配送区域,而且每个客户只会命中一个区域。区域顺序放错,可能导致客户进入一个没有配送方式的区域。详细规则见 WooCommerce 配送区域官方教程。
原因五:条件规则把所有网关都排除了
如果网站安装了 Conditional Shipping and Payments、按国家禁用付款方式、B2B 角色定价、会员、订阅或批发插件,检查是否存在以下限制:
- 购物车金额低于最低值或高于最高值;
- 商品分类、SKU、虚拟/实体属性不满足规则;
- 客户角色或登录状态被排除;
- 账单国家、配送国家或邮编不在范围内;
- 优惠券、订阅商品或预购商品要求特定网关;
- 某条“隐藏付款方式”规则覆盖范围过大。
WooCommerce 的条件付款扩展可以按地址、订单重量、购物车内容、用户角色和邮箱隐藏网关。规则很灵活,写反时也很灵活。可参照 Conditional Shipping and Payments 文档逐条停用测试。
原因六:缓存、JavaScript 错误或结账片段没有刷新
修改付款设置后,先清理 WordPress 页面缓存、对象缓存和 CDN 缓存,再使用浏览器无痕窗口测试。缓存插件必须排除购物车、结账和“我的账户”页面,不能把某位客户的结账状态缓存给下一位客户。
同时按 F12 打开浏览器开发者工具,查看 Console 与 Network:
- 是否有红色 JavaScript 报错;
checkout或 Store API 请求是否返回 4xx/5xx;- 支付插件脚本是否被性能插件延迟、合并或拦截;
- Cookie 同意工具是否在用户同意前阻断了必要脚本。
如果关闭 JavaScript 延迟加载或脚本合并后付款方式恢复,应在优化插件中排除结账页和支付网关脚本,而不是长期关闭全站缓存。
原因七:主题或插件冲突
前面都正常时,再做冲突测试。生产站不要直接“全关插件”,先建立备份或在测试环境操作:
- 切换到 Storefront 等标准 WooCommerce 主题;
- 保留 WooCommerce 和正在测试的支付插件;
- 暂时停用其他插件;
- 确认付款方式是否出现;
- 逐个恢复插件,每恢复一个就测试一次。
如果只在某个主题下消失,检查主题是否覆盖了旧版 WooCommerce 模板;如果启用某个插件后消失,查看它是否修改了结账、国家、币种、配送或用户角色。Stripe 官方故障文档也把主题兼容、插件冲突和站点配置列为付款方式不显示的常见来源,见 Stripe 付款方式不显示排查。
查看 WooCommerce 状态与支付日志
进入 WooCommerce → 状态,重点查看:
- WordPress、PHP、WooCommerce 与主题版本;
- 是否有过期的模板覆盖;
- HTTPS 是否正常;
- 计划任务是否堆积;
- 支付插件是否报告缺少扩展或服务器模块。
再到 WooCommerce → 状态 → 日志,选择 PayPal、Stripe、WooPayments 或目标网关当天的日志。日志里如果出现认证失败、币种不支持、商户能力未开通或 Webhook 错误,就按具体错误处理。对外求助时可以提供系统状态报告和报错时间,但必须先遮住 API Key、Client Secret、Webhook Secret、邮箱和客户隐私。
一份可以照着执行的排查清单
- 用无痕窗口复现问题,记录商品、金额、币种和客户地址;
- 确认至少一个付款网关已启用且账户连接完成;
- 临时启用 BACS,判断是单个网关问题还是全局问题;
- 若使用 Checkout Block,切换经典结账做对照;
- 检查币种、商户国家、客户地址和网关金额限制;
- 确认配送区域与配送方式正确匹配;
- 停用所有支付/配送条件规则,再逐条恢复;
- 清理页面缓存、对象缓存和 CDN,排除结账页脚本优化;
- 查看 WooCommerce 状态和支付日志;
- 最后在备份或测试站做主题、插件冲突测试。
什么时候应该找技术人员处理?
如果切回经典结账后仍然没有任何付款方式,日志又出现 PHP Fatal Error、REST API 失败或支付脚本持续报错,就不要在生产站反复重置。保留备份、系统状态报告、错误日志、复现地址和测试订单条件,再交给技术人员定位。
如果你还在搭建阶段,希望把 WooCommerce、域名、HTTPS、备份和支付入口一次配置好,可以用 SHOPAGG 创建网站,有现成模板和教程。已经上线的站点则建议先在测试环境完成付款链路验证,再把改动同步到正式站——结账页不是适合边营业边拆发动机的地方。
作者:庄朋龙,SHOPAGG 独立站运营与 WordPress/WooCommerce 实操内容编辑。



