跳到主内容
版本: 1.x

结账性能

如果您在结账过程中遇到性能缓慢的问题,本指南将帮助您识别并解决最常见的成因。

WCPOS 结账如何工作​

WCPOS 结账打开一个包含 iframe/webview 的模态框,加载 WooCommerce 订单支付模板的简化版。这本质上与客户在线支付订单时看到的 客户支付页面 相同。

开发者注意事项

您可以在 WCPOS 插件代码库中查看结账模板:templates/payment.php

内置优化​

WCPOS 包含多项优化以提高结账性能:

  • 简化的模板 - 移除不必要的主题元素和杂乱内容
  • 选择性加载脚本/样式 - 仅加载必要的脚本和样式
  • 简化 DOM 结构 - 减少结账页面的复杂性

然而,一些脚本和样式无法完全禁用,因为支付网关可能需要它们才能正常工作。

常见性能问题​

1. 不必要的脚本和样式​

问题: 主题和插件添加了不需要的脚本和样式,导致页面加载时间变慢。

解决方案: 使用 结账设置 禁用不必要的资源:

  1. 点击结账模态框中的 结账设置 按钮
  2. 尝试首先禁用主题样式:
    • wp-block-library
    • classic-theme-styles
    • 您主题的自定义样式
  3. 禁用非必要的 WooCommerce 脚本:
    • wc-add-to-cart
    • selectWoo(如果支付网关不需要)
    • html5shiv
禁用所有样式和脚本的表单

用于禁用所有样式和脚本的表单

请谨慎操作

请勿禁用支付网关所需的脚本。如果某种支付方式在禁用脚本后停止工作,请重新启用该脚本。

2. 创建订单时的插件干扰​

**问题:**在订单创建过程中挂接的插件可能会造成明显延迟。例如,Xero 等会计插件可能会将订单数据发送到外部服务器,从而阻塞结账流程。

故障排查步骤:

  1. 在暂存环境中测试 - 如果您有暂存服务器,请停用除 WooCommerce 和 WCPOS 之外的所有插件
  2. 测试结账速度 - 处理一笔测试订单并记录性能表现
  3. 逐步启用插件 - 如果性能明显改善,请逐个重新启用插件,以找出问题来源
  4. 联系插件开发者 - 如果某个插件导致问题,请联系其开发者寻求优化建议

常见的问题插件类型:

  • 会计/簿记集成(Xero、QuickBooks)
  • 在创建订单时触发的电子邮件营销工具
  • 库存管理系统
  • 复杂的配送费用计算器
  • 第三方分析工具

3. 服务器资源限制​

**问题:**如果服务器负载过高或资源不足,所有操作(包括结账)都会变慢。

监控与解决方案:

  1. 监控服务器性能:

    • 结账期间的 CPU 使用率
    • 内存占用
    • 数据库查询性能
    • 网络延迟
  2. 优化服务器资源:

    • 提高 PHP 内存限制
    • 优化数据库查询
    • 使用缓存插件(但请测试兼容性)
    • 考虑升级主机套餐
  3. 数据库优化:

    • 清理旧订单数据
    • 优化数据库表
    • 移除不必要的插件和主题

WordPress 开发者最佳实践​

开发者须知

WordPress 开发者应使用 wp_enqueue_scripts,以便在页面中正确添加脚本和样式。但有些插件和主题开发者并未遵循最佳实践,而是将代码直接插入模板,导致难以通过取消队列来移除这些资源。

如果您遇到无法通过收银台设置禁用的脚本或样式问题:

  1. 联系开发者 - 请他们遵循 WordPress 编码标准
  2. 使用子主题 - 在子主题中覆盖有问题的模板
  3. 自定义钩子 - 使用 WordPress 钩子,在结账页面移除有问题的代码

性能测试​

如需测试结账性能改进:

  1. 测量基准 - 在进行更改前,测量结账所需的时间
  2. 每次只做一项更改 - 这样有助于确定哪些更改影响最大
  3. 使用真实支付网关进行测试 - 不要只用现金支付测试
  4. 在不同设备上测试 - 移动设备的性能表现可能有所不同

快速见效的优化​

以下是您可以采取的最有效性能改进措施:

  1. 禁用主题样式 - 通常能带来最大的改善
  2. 移除不必要的 WooCommerce 脚本 - 减少 JavaScript 执行时间
  3. 检查订单创建钩子 - 找出并优化运行缓慢的插件
  4. 优化图片 - 确保结账页面中的图片都经过优化
  5. 使用性能监控插件 - 持续跟踪改进效果

何时寻求帮助​

遇到以下情况时,请联系 WCPOS 支持团队:

  • 结账时间持续超过 10 秒
  • 您已按照本指南操作,但问题仍然存在
  • 您怀疑某个特定插件有问题,但无法确定是哪一个
  • 您需要帮助优化服务器资源