一、虚拟产品与可下载产品有什么区别
WooCommerce 产品编辑面板左上角有两个复选框:Virtual(虚拟) 和 Downloadable(可下载)。它们不是互斥的,可以单独勾选,也可以同时勾选。
| 勾选方式 | 是否有运费 | 是否有文件下载 | 订单是否自动完成 | 典型用途 |
|---|---|---|---|---|
| 都不勾 | ✅ 是 | ❌ 否 | ❌ 需手动发货 | 普通实体商品 |
| 只勾 Virtual | ❌ 否 | ❌ 否 | ❌ 需手动处理 | 在线咨询、服务预约 |
| 只勾 Downloadable | ✅ 是 | ✅ 是 | ❌ 需手动完成 | 卖实体书附赠电子版 |
| 两个都勾 | ❌ 否 | ✅ 是 | ✅ 自动完成* | 电子书、软件、音频 |
自动完成是订单级规则:只有当订单里的所有产品都同时勾选了 Virtual + Downloadable,付款后订单才会自动变成 Completed。只要订单里混了一个实体产品或只勾了 Virtual 的产品,整张订单就会停在 Processing,等你手动处理。
一句话:Virtual 管运费,Downloadable 管文件。纯数字产品两个都勾,实体+数字只勾 Downloadable。

二、创建虚拟产品
虚拟产品不需要发货,适合服务类商品(在线咨询、设计服务、会员资格等)。勾选 Virtual 后,产品编辑页的 Shipping(配送)标签会消失。
🖥️ 2.1 操作步骤
- 进入
产品 → 新建产品 - 填写产品标题和描述
- 在产品数据面板左上角,勾选
Virtual - 切到 General(常规)标签,填写 Regular price(常规价格)
- 点击
Publish发布

⚠️ 2.2 注意事项
- 勾选 Virtual 后,Shipping 标签直接从面板消失,不需要额外操作
- 如果订单里只有虚拟产品,购物车和结账页不会出现运费字段
- 但订单状态不会自动变成 Completed——除非产品同时勾选了 Downloadable,且订单内所有产品都满足这个条件
- 如果订单里同时有虚拟产品和实体产品,仍然需要走完整配送流程
💡 虚拟产品不等于可下载产品。如果你卖的是服务(不需要给客户文件),只勾 Virtual 就行。如果卖的是电子书(需要客户下载文件),还要勾 Downloadable。
三、创建可下载产品
可下载产品在客户付款后提供文件下载链接,适合电子书、软件、音频、设计模板等。
📥 3.1 勾选 Downloadable
- 进入
产品 → 新建产品 - 填写产品标题和描述
- 在产品数据面板左上角,勾选
Downloadable - 同时勾选
Virtual(纯数字产品推荐两个都勾,原因见第四章) - 切到 General(常规)标签,此时会多出三个字段:Downloadable files、Download limit、Download expiry

🗂️ 3.2 上传下载文件
- 在 Downloadable files 区域,点击
Add file按钮 - 在 File name 输入框填文件名称(客户会看到这个名字),比如
产品使用手册.pdf - 在 File URL 输入框右侧,点击
Choose file按钮 - 弹出媒体库窗口,点击
Upload Files上传你的文件,或从已有文件中选择 - 选中文件后点击
Insert确认 - 如果一个产品有多个文件(比如 PDF + 视频),重复点击 Add file 逐个添加

⚠️ 一定要通过产品编辑页的 Choose file 上传,不要直接把文件传到 WordPress 媒体库再复制 URL。WooCommerce 通过 Choose file 上传的文件会存到
wp-content/uploads/woocommerce_uploads/目录,该目录默认受.htaccess保护,无法通过 URL 直接访问。而媒体库是公开的,任何人拿到链接就能下载。
🔢 3.3 设置下载次数与有效期
在 General 标签中,文件下方有两个字段:
- Download limit(下载次数限制):填数字,客户总共可下载这么多次。留空 = 不限次数
- Download expiry(下载有效期):填数字,购买后多少天内可下载。留空 = 永久有效
操作示例:
- 只想让客户下载 3 次 → Download limit 填
3 - 30 天后链接失效 → Download expiry 填
30 - 永久不限 → 两个字段都留空

💰 3.4 设置价格并发布
- 在 General 标签的 Regular price 填写售价
- 如有促销价,填 Sale price(可选)
- 设置产品主图、分类等
- 点击
Publish发布
四、虚拟 + 可下载组合:纯数字产品标准配置
卖电子书、软件、音频这类纯数字商品时,必须同时勾选 Virtual + Downloadable。这个组合有一个关键好处:订单付款后自动完成。
🔐 4.1 为什么同时勾选
只勾 Downloadable 不勾 Virtual,WooCommerce 会把产品当作实体产品处理:
– 订单支付后状态停在 Processing(处理中)
– 需要你手动把订单标记为 Completed(已完成)
– 客户才能拿到下载链接
同时勾选 Virtual + Downloadable 后:
– 订单支付后自动跳过 Processing,直接变成 Completed
– 客户立即在订单确认页、订单邮件、我的账户页看到下载链接
– 你不需要任何手动操作
⚠️ 注意前提:自动完成判断的是整张订单,不是单个产品。只有订单内所有产品都同时是 Virtual + Downloadable,订单才会自动 Completed。如果客户同一单里还买了实体商品或只勾了 Virtual 的服务,整张订单照常停在 Processing,下载链接也要等订单完成(或开启第五章的全局设置)才发放。

📝 4.2 配置步骤
- 进入
产品 → 新建产品,填标题和描述 - 勾选
Virtual+Downloadable - 在 General 标签添加下载文件(操作见第三章 3.2)
- 填写 Download limit 和 Download expiry(可选)
- 填 Regular price
- 点击
Publish发布
💡 如果只勾了 Downloadable 没勾 Virtual,客户结账时还会看到运费字段。这不是 bug,是 WooCommerce 默认逻辑——没标 Virtual 的产品都当作需要配送。
五、实体 + 可下载混合配置
卖实体商品同时附赠数字文件(实体书+电子版、硬件+驱动程序),只勾 Downloadable,不勾 Virtual。产品仍需发货,但客户也能下载附件。
📦 5.1 操作步骤
- 进入
产品 → 新建产品,填标题和描述 - 只勾选
Downloadable,不勾 Virtual - 在 General 标签添加下载文件
- 填写 Download limit 和 Download expiry(可选)
- 在 Shipping 标签填写重量和尺寸(用于运费计算)
- 填 Regular price
- 点击
Publish发布

⚠️ 5.2 混合订单的下载权限
这种配置下,订单支付后状态停在 Processing,不会自动变成 Completed。客户在订单完成前看不到下载链接。
如果你希望客户付款后立刻能下载(不用等实体发货),需要开启一个全局设置:
- 进入
WooCommerce → 设置 → 产品 → 可下载产品 - 勾选
Grant access to downloadable products after payment(付款后授予下载权限) - 点击
Save changes
开启后,即使订单还在 Processing 状态,客户也能下载文件。
💡 如果订单里同时有实体产品和可下载产品,建议开启这个选项。客户买了实体书能立刻看电子版,不用等快递到。
六、下载全局设置详解
这个设置页控制所有可下载产品的文件交付方式、访问权限和安全策略。
🛡️ 6.1 进入设置页
进入 WooCommerce → 设置 → 产品 → 可下载产品

📋 6.2 File download method(文件下载方式)
下拉菜单有三个选项:
Force downloads(强制下载):通过 PHP 脚本读取文件,客户拿不到真实 URL。默认选项,推荐大多数场景。大文件可能因服务器超时导致下载失败。X-Accel-Redirect/X-Sendfile:由 Nginx 或 Apache 服务器直接传输文件,性能最好。需要服务器安装对应模块,用前联系主机商确认。Redirect only (insecure)(仅重定向,不安全):直接跳转到文件 URL,任何人拿到链接都能访问。仅在使用 Google Drive 等外部存储时需要选这个。

选中 Force downloads 或 X-Accel-Redirect 后,还可以额外勾选 Allow using redirect mode (insecure) as a last resort——当主方式失败时自动降级为重定向,适合文件分散存在不同平台的情况。
🔒 6.3 访问限制
Downloads require login:勾选后要求客户登录才能下载。前提是关闭了游客结账(Guest Checkout),否则该选项无效。Grant access to downloadable products after payment:勾选后,订单在 Processing 状态就开放下载权限,不用等到 Completed。用于实体+数字混合订单。
🆔 6.4 文件名安全
Append a unique string to filename for security:默认开启。给上传的文件名追加随机字符串,让 URL 更难被猜测。建议保持开启。该设置只影响设置变更后上传的文件,之前已上传的文件不受影响。
📁 6.5 Approved download directories(认可的下载目录)
同一设置页顶部有个相邻标签 Approved download directories。这个功能给可下载文件的来源建了一份 URL 路径白名单:只有以你认可目录路径开头的文件 URL 才能被保存进产品。
它主要约束的是能编辑产品的店员(Shop Manager)或编辑角色——防止他们往产品里填入来路不明的第三方下载链接;管理员(Administrator)添加的链接不受此限制。如果你的店只有管理员自己在传产品,这个功能保持默认即可。

七、客户下载流程与权限管理
📩 7.1 客户在哪里拿到下载链接
客户付款后可以通过以下途径获取下载链接:
- 订单确认页:支付成功后跳转的 Thank You 页面,会显示下载链接
- 订单邮件:WooCommerce 发送的订单完成通知邮件中包含下载链接
- 我的账户页:登录后进入
My Account → Downloads可查看所有已购下载文件
⚠️ 某些支付网关采用异步通知机制(如 IPN),如果通知延迟或失败,订单会停留在「未支付」状态,下载链接也就不会出现在订单确认页。遇到这类情况,先检查网关的通知回调是否正常,而不是去改下载设置。
🔧 7.2 在订单中管理下载权限
如果需要手动调整某个客户的下载权限(比如延长有效期、重置下载次数):
- 进入
WooCommerce → 订单 - 找到对应订单,点击编辑
- 向下滚动找到 Downloadable product permissions(下载产品权限)区域
- 这里可以看到每个文件的下载次数使用情况和到期时间
- 可以撤销访问权限、重新授权、或修改剩余下载次数

🔄 7.3 更新已售产品的下载文件
如果你修改了已售产品的下载文件:
- 编辑现有文件条目(改名称或 URL):已购客户的下载链接会同步更新,但下载次数和有效期不变
- 添加新文件条目:不会影响已购客户,只有新买家才能看到新文件
如果你希望所有客户都拿到最新版本,编辑现有条目而不是新增。
📊 7.4 查看下载报告
- 进入
WooCommerce → 分析 → 下载 - 可以查看每个文件的下载次数、下载客户、下载时间分布
- 用于判断数字产品是否被频繁下载、是否有异常下载行为


















- 最新
- 最热
只看作者