# 在KapsuleHost上设置WooCommerce

Source: https://support.kapsulehost.com/zh-cn/wordpress-woocommerce

KapsuleHost 提供专门的 WooCommerce 网站类型，会为您安装 WordPress、WooCommerce 以及一套新西兰支付网关，并在网站菜单中添加商店专属工具。本指南涵盖创建商店、连接支付方式、对高负载商店至关重要的设置，以及如何在不丢失订单的情况下进行更改。

## 创建 WooCommerce 网站

1. 登录 [KPanel](https://kpanel.kapsulehost.com)，然后点击左侧边栏中的**网站**。
2. 点击**添加网站**，再点击**新网站**。
3. 选择 **WooCommerce** 作为网站类型。
4. 为商店命名并完成向导。

KapsuleHost 会配置 WordPress、创建数据库、安装并激活 WooCommerce，并预装下方列出的支付网关插件。运行环境设定为 PHP 8.3，并包含商店所需的扩展，包括图片处理功能。

如果您已有一个 WordPress 网站，想在其上添加商店功能，可以在 wp-admin 中通过常规方式，从**插件**，再到**新建**来安装 WooCommerce。该网站仍保持 WordPress 网站类型，这意味着此处介绍的商店专属选项卡不会出现。

> **Note:** 要迁移现有商店而非重新开始？请勿手动重建。请使用左侧边栏中的**迁移**功能，它会在您当前商店持续在线运行的同时复制文件和数据库。请参阅[从 cPanel 迁移网站](https://support.kapsulehost.com/zh-cn/sites-migrate-cpanel)。

## 支付网关

打开商店，然后进入 **WordPress** 选项卡，再进入**支付**。这是 WooCommerce 专属的选项卡，不会出现在普通 WordPress 网站上。

![WooCommerce 商店的支付网关面板](https://support.kapsulehost.com/help/screenshots/wordpress-woocommerce.475328e2.webp)

本节涵盖五种网关，并标注了与新西兰相关的选项：

| 网关 | 涵盖范围 | 新建商店中的状态 |
|---|---|---|
| Stripe | 信用卡、Apple Pay 和 Google Pay | 已预装，未启用 |
| Afterpay | 先买后付 | 已预装，未启用 |
| POLi | 新西兰银行转账 | 已预装，未启用 |
| PayPal | PayPal 及信用卡 | 已预装，未启用 |
| Windcave | 新西兰信用卡处理及 EFTPOS | 可用，需从供应商处安装 |

Apple Pay 和 Google Pay 随 Stripe 一同提供：两者均无需单独安装。

各网关默认被**有意设置为未启用**状态。若网关启用却未配置凭据，会导致结账失败，因此在您提供自己的商户账户信息之前，任何网关都不会正式上线：

1. 点击您所使用网关上的**启用**。
2. 点击**配置**，即可在 wp-admin 中打开该网关的设置页面。
3. 输入您自己的 API 密钥或商户凭据并保存。
4. 在公开商店之前，先下一笔测试订单。

Windcave 由供应商直接分发，而非通过插件目录提供，因此面板中会显示一个**获取插件**链接。下载后，在 wp-admin 中通过**插件**，再到**新建**上传该插件，然后返回此处完成配置。

> **Note:** **支付**选项卡是 Managed WooCommerce 的一部分功能。在其他套餐中，该位置会显示升级面板。无论使用何种套餐，您仍然可以直接在 wp-admin 中安装并配置任何网关：该选项卡只是一个快捷方式，并非唯一途径。

## 商店性能

相较于宣传型网站，商店在每次页面访问中会产生更多数据库操作，因此缓存是提升性能收益最大的环节。

**完整页面缓存。** 在网站的 **WordPress** 选项卡，再进入**缓存**，完整页面缓存会向匿名访客提供已生成好的 HTML，完全不运行 PHP，也不访问数据库。购物车、结账、我的账户页面以及 WooCommerce 的 AJAX 接口会被自动绕过，任何带有有效购物车 Cookie 的访客始终会看到实时页面。该缓存能够加快商品页和分类页的加载速度，同时绝不会把一位顾客的购物车展示给另一位顾客。

**对象缓存。** 在同一界面中，对象缓存会将数据库查询结果和临时数据保存在内存中。正是这一功能让 WooCommerce 后台在大型商品目录下依然保持可用。

**CDN。** 在**性能**，再到 **Kapsule CDN** 中开启此功能，即可从边缘节点提供商品图片及静态资源，在拥有 Kapsule CDN+ 的套餐上还支持图片优化与 WebP 转换。请参阅[启用 CDN](https://support.kapsulehost.com/zh-cn/cdn-enabling)。在批量更换商品图片后，请记得清除缓存：[清除 CDN 缓存](https://support.kapsulehost.com/zh-cn/cdn-cache-purge)。

> **Tip:** 完整页面缓存和对象缓存均包含在 Managed WooCommerce 套餐内。如果您的商店使用的是其他套餐，缓存选项卡会显示升级后可获得的功能。无论如何，请先启用 CDN：它已包含在所有 Web Hosting、WordPress、Managed WordPress、Managed WooCommerce 和 Concierge 套餐中，是图片较多的商店最划算的性能提升手段。

## 商店的 PHP 设置

商店是客户最常需要调整默认设置的场景。在网站的**设置**，再到 **PHP** 选项卡中：

- **内存限制**：如果商品目录庞大或运行订阅功能，请从 256M 提高到 512M。
- **最大执行时间**：如果商品导入或报表生成出现超时，请从 30 秒提高到 120 秒或 300 秒。
- **最大输入变量**：如果您的商品含有大量变体，或在保存设置页面时字段被静默丢弃，请从 3000 提高该值。

完整说明请参阅[提高 WordPress 内存限制](https://support.kapsulehost.com/zh-cn/wordpress-memory-limit)。

## 定时任务

WooCommerce 在后台执行大量工作：订单状态变更、订阅续费、邮件发送、库存同步等。它使用 WordPress 内置的调度器，该调度器默认只在有人访问网站时才会触发。对于访问量较低的商店，这意味着续费和邮件可能延迟发送甚至根本不执行。

应将其替换为真正的服务器端定时任务。在 **WordPress** 选项卡的 **WP-Cron** 部分，有一个**启用系统cron**操作，可一步到位添加定时任务，并同时禁用依赖访客触发的旧版本。完整说明及手动替代方案请参阅[设置和管理 Cron 任务](https://support.kapsulehost.com/zh-cn/cron-jobs)。

您可以在 wp-admin 中的 **WooCommerce**，再到**状态**，再到**计划操作**查看任务队列。

## 在不丢失订单的前提下进行更改

每个商店都是一个客户在持续写入数据的实时数据库，这也改变了您应对更新操作的方式。

> **Important:** 切勿将预览环境的数据库推送到正式商店。订单、客户、订阅、优惠券和库存水平都保存在数据库中，因此数据库推送会删除自上次重置以来，在生产环境中产生的所有订单。请只推送**仅文件**内容，这足以满足主题、插件和代码方面的更改需求。请参阅[使用预览环境：推送与拉取](https://support.kapsulehost.com/zh-cn/wordpress-staging-workflow)。

针对商店的安全更新流程：

1. 先进行备份：[创建备份](https://support.kapsulehost.com/zh-cn/taking-a-backup)。
2. 将预览环境从生产环境重置，使其与正式商店保持一致。
3. 在预览环境中应用插件、主题或 WooCommerce 更新。
4. 在预览环境中下一笔完整的测试订单，直到完成确认页面。
5. 仅将**文件**推送到生产环境。
6. 在生产环境中下一笔金额较小的真实订单并进行退款。

在托管套餐中，**快速操作**里的**更新插件**操作会变为**智能更新**：它会先备份，然后逐一更新插件，并在每次更新后运行网站健康检查，一旦发现问题导致网站异常，会自动回滚。对于结账故障就意味着经济损失的商店而言，这项功能非常值得拥有。

## 时间点恢复

每日备份只能将商店还原到备份运行时的状态，对于繁忙的商店来说，这可能意味着丢失一整天的订单。WooCommerce 网站可以通过**备份**，再到**时间点恢复**启用时间点恢复功能，改为还原到指定的某一分钟，并最多保留 30 天的历史记录。任何涉及真实资金往来的商店都应启用此功能。请参阅[创建备份](https://support.kapsulehost.com/zh-cn/taking-a-backup)。

## 故障排查

**结账失败且无错误提示。** 几乎总是由于某个已启用的网关缺少凭据或凭据有误造成。请在**支付**选项卡中逐个禁用网关，直到结账功能恢复正常，然后重新配置导致问题的那一个。

**订单邮件未能送达。** WordPress 默认通过 PHP 发送邮件，而大多数网络会拒收此类邮件。请检查 **WordPress** 选项卡，再到**网站健康状况**中的投递警告，并配置正确的身份验证发送方式。

**后台页面速度缓慢或超时。** 请在 **PHP** 选项卡中提高内存和执行时间限制，并启用对象缓存。订单量达数万级别的商店，清理旧的计划操作记录也会有所帮助。

**商品更改未在前台显示。** 请从 **WordPress**，再到**快速操作**，再到**清空缓存**清除缓存，并清除 CDN 缓存。
