# 结账性能

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

## WCPOS 结账如何工作[​](#how-wcpos-checkout-works "直接链接到 WCPOS 结账如何工作")

WCPOS 结账打开一个包含 iframe/webview 的模态框，加载 WooCommerce 订单支付模板的简化版。这本质上与客户在线支付订单时看到的 [客户支付页面](https://woocommerce.com/document/managing-orders/paying-for-orders/#customer-payment-page-link) 相同。

Developer Note

您可以在 WCPOS 插件代码库中查看结账模板：[templates/payment.php](https://github.com/wcpos/woocommerce-pos/blob/main/templates/payment.php)

## 内置优化[​](#built-in-optimizations "直接链接到 内置优化")

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

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

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

## 常见性能问题[​](#common-performance-issues "直接链接到 常见性能问题")

### 1. 不必要的脚本和样式[​](#1-unnecessary-scripts-and-styles "直接链接到 1. 不必要的脚本和样式")

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

**解决方案：** 使用 [结账设置](/zh-CN/pos/checkout/.md#checkout-settings-troubleshooting) 禁用不必要的资源：

1. 点击结账模态框中的 **结账设置** 按钮

2. 尝试首先禁用主题样式：

   <!-- -->

   * wp-block-library
   * classic-theme-styles
   * 您主题的自定义样式

3. 禁用非必要的 WooCommerce 脚本：

   <!-- -->

   * wc-add-to-cart
   * selectWoo（如果支付网关不需要）
   * html5shiv

![禁用所有样式和脚本的表单](/img/disable-styles-and-scripts.png)

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

小心

不要禁用您的支付网关所需的脚本。如果禁用某个脚本后支付方式停止工作，请重新启用它。

### 2. 插件在订单创建期间的干扰[​](#2-plugin-interference-during-order-creation "直接链接到 2. 插件在订单创建期间的干扰")

**问题：** 在订单创建过程中挂钩的插件可能会导致重大延迟。例如，像 Xero 这样的会计插件可能会将订单数据发送到外部服务器，从而阻塞结账过程。

**故障排除步骤：**

1. **在暂存服务器上测试** - 如果您有暂存服务器，禁用除 WooCommerce 和 WCPOS 之外的所有插件
2. **测试结账速度** - 处理一个测试订单并记录性能
3. **逐渐启用插件** - 如果性能显著改善，逐个重新启用插件以识别罪魁祸首
4. **联系插件开发者** - 如果特定插件导致问题，请联系开发者以获取优化建议

**常见问题插件类型：**

* 会计/记账集成（Xero、QuickBooks）
* 在订单创建时触发的电子邮件营销工具
* 库存管理系统
* 复杂的运输计算器
* 第三方分析工具

### 3. 服务器资源限制[​](#3-server-resource-limitations "直接链接到 3. 服务器资源限制")

**问题：** 如果您的服务器负载过高或资源不足，则包括结账在内的所有操作将变得缓慢。

**监控和解决方案：**

1. **监控服务器性能：**

   * 结账期间的 CPU 使用率
   * 内存消耗
   * 数据库查询性能
   * 网络延迟

2. **优化服务器资源：**

   * 增加 PHP 内存限制
   * 优化数据库查询
   * 使用缓存插件（但要测试兼容性）
   * 考虑升级主机计划

3. **数据库优化：**

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

## WordPress 开发人员最佳实践[​](#wordpress-developer-best-practices "直接链接到 WordPress 开发人员最佳实践")

For Developers

WordPress 开发人员应使用 `wp_enqueue_scripts` 正确地将脚本和样式添加到页面中。不幸的是，一些插件和主题开发人员不遵循最佳实践，直接在模板中插入代码，使得无法轻易地取消这些资源的队列。

如果您在结账设置中遇到无法禁用的脚本或样式问题：

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

## 性能测试[​](#performance-testing "直接链接到 性能测试")

要测试结账性能的改善：

1. **基线测量** - 测量在进行更改之前结账所需的时间
2. **一次更改一次** - 这有助于识别哪些更改影响最大
3. **与真实支付网关测试** - 不要仅测试现金支付
4. **在不同设备上测试** - 移动设备可能显示不同的性能特征

## 快速提升[​](#quick-wins "直接链接到 快速提升")

以下是您可以进行的最有效的性能改进：

1. **禁用主题样式** - 通常能提供最大的改善
2. **移除不必要的 WooCommerce 脚本** - 减少 JavaScript 执行时间
3. **审计订单创建钩子** - 识别和优化缓慢的插件
4. **优化图像** - 确保结账中的任何图像都经过优化
5. **使用性能监控插件** - 跟踪长期改进

## 何时寻求帮助[​](#when-to-seek-help "直接链接到 何时寻求帮助")

如果以下情况，请联系 WCPOS 支持：

* 结账时间始终超过 10 秒
* 您已按照本指南操作，但仍然遇到问题
* 您怀疑某个特定插件，但无法识别
* 您需要帮助优化服务器资源

## 相关文档[​](#related-documentation "直接链接到 相关文档")

[结账设置禁用问题脚本和样式](/zh-CN/pos/checkout/.md#checkout-settings-troubleshooting)

[支付方式配置支付网关以优化性能](/zh-CN/payment/.md)

[故障排除常规故障排除指南](/zh-CN/category/troubleshooting.md)

***
