搜索全站
主题 10 分钟阅读

ThemeForest 主题的授权陷阱:单站点限制、支持期与续费的常见坑

一份 ThemeForest 授权常常只覆盖一个站点,6 个月支持期一晃就过。本文讲清 Regular vs Extended license 的边界、演示图片的二级授权、更新源依赖,以及购买前后的核验清单。

U
UFO_PF 2017-02-07 · 阅读 10 分钟
Th 主题
阅读提示
本文约 3,866 字,预计阅读 10 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:买的时候没人告诉你,第二年会发生什么

在 ThemeForest(Envato Market)上买 WordPress 主题的流程很顺:选商品、付款、拿到一个 Purchase Code(形如一串 UUID)和一份压缩包。装上去,填码激活,demo 一导入,漂亮的站点就有了。

埋的雷在后面:第二年你想给另一个客户用同一份主题,激活失败 → 才知道 License 是单站点;SEO 部门想改 SEO 结构去提工单,不支持 → 才知道 6 个月支持期已过;演示站里的摄影图想接着用 → 才知道图片不在这份 license 里。

这些问题不是卖家坑人,而是购买流程恰恰发生在你最不关心条款的时候。本文把 Envato 的授权模型拆解清楚,重点不是条款原文,而是它在真实项目里的表现,以及购买前后的核验清单。关于更广义的免费/付费差异,可配合阅读免费主题与付费主题的真实差异。

原理分析:Envato 授权模型的四个关键点

1. Regular License 的“一个最终产品”定义。

Regular License 允许你将商品用于一个 “single end product”(最终产品),且该产品不对终端用户收费。举例来说:给客户 A 做的企业站 = 一个最终产品;给客户 B 做站即使长得再像,也得再买一份。这是最常踩的坑——很多建站者是拿一个主题反复做客户站的。

2. GPL 代码与非 GPL 素材的“分割授权”。

PHP 代码部分是 GPL,但主题包里包含的摄影图、图标字体、JS 库往往来自第三方。这些通常附带单独条款,很多 demo 图片明确写着 “for demo purpose only”。因此即使你买了 license,把演示站的商业摄影图直接用到自己的线上 Okama 里,仍然可能侵权。

3. 支持期(support period)与更新(update)是两件事。

Envato 上默认是 6 个月支持期,可加价延长到 12 个月。到期后:你不能提新工单,但依然可以继续下载作者后续发布的版本(只要商品未下架)。很多买家误以为到期就不能更新了,其实恰好相反。

4. 更新通道依赖作者 API。

多数商用主题通过 TGMPA 或自建 updater 做版本检查,API 域名写死在主题代码里。作者若把商品下架、停止维护或服务器迁移,你的更新源就断了,届时只能手动 FTP 升级或彻底换主题。这是长期风险的来源。

保姆级实操

第一步:购买前逐条核对三个字段。

  • Item Support:包含 vs 不包含(有的商品本身价格低,是不含支持的)
  • License type:Regular(一个站点)vs Extended(可用于收费产品)
  • Last Update:超过 8 个月未更新的谨慎考虑

第二步:拿到 Purchase Code 后先做校验,确认激活链路正常。

# Envato 官方校验接口(code 填你的购买码,token 使用你自己的 Envato API 个人令牌)
curl -s -H "Authorization: Bearer <你的Envato_API令牌>" \
     -H "User-Agent: Purchase code verification" \
     "https://api.envato.com/v1/market/buyer/purchase?code=你的购买码"

正常返回 JSON 里包含 item 与 supported_until 字段。supported_until 就是你的支持到期日,建议立即记进日历。令牌不要写进代码库,改用环境变量。

第三步:盘点主题包内的非 GPL 资源。

cd 主题目录/
# 查看随包提供的授权说明文件
find . -iname "license*" -o -iname "*LICENSE*" -o -iname "readme*" | head -20

# 列出演示图片/字体资源,逐一确认来源
find . \( -path "*demo*" -o -path "*sample*" \) -type f \( -iname "*.jpg" -o -iname "*.png" \) | head -20
ls assets/fonts assets/webfonts 2>/dev/null

对这些资源,最稳的做法是:上线前用自己的图片全部替换掉,字体则换成自托管的开源字体(思源黑体、Noto Sans SC 等)。

第四步:识别更新 API 的归属,评估长期依赖。

# 找出主题里写死的更新/激活接口域名
grep -rEoh "https?://[a-zA-Z0-9.-]+/(wp-|update|api|license)[a-zA-Z0-9./_-]*" \
  --include="*.php" . | sort -u | head -20

如果该域名与作者官网无关(比如某个 VPS 直连 IP 或短链),属于高风险更新源:它绕过了市场机制,且随时可能消失。

第五步:给多站点场景提前算清成本。

# 记录每个已部署站点上该主题的 license 激活情况(用于盘点)
wp option list --search="purchase_code*" --fields=option_name | head
wp option list --search="envato*" --fields=option_name | head

建议在自建台账里为每个站点记录:站点域名 | Item ID | Purchase Code | 支持到期日 | 更新方式,避免日后分不清哪个码用在哪个站。注意:不要把 purchase code 提交到 Git 仓库 —— 它属于敏感凭据。

第六步:处理 TGMPA 强绑的必需插件。

grep -rn "tgmpa_register\|force_activation" --include="*.php" . | head -10

被 force_activation 标记且已下架的插件,会导致新站点无法复现旧效果。购买前先去插件页面确认是否仍在售。

第七步:核算三年总持有成本(TCO)。

# 简单核算脚本:主题价 + 支持续费 + 依赖插件年费
python - <<'PY'
theme = 59           # 主题价格(美元)
support_ext = 17.63  # 延长 12 个月支持的加价(示意值,以页面实际显示为准)
plugins = 3 * 39     # 3 个必需的付费插件年费
years = 3
print("三年总持有成本约:", theme + support_ext*2 + plugins*years, "美元")
PY

如果你是从第三方站拿到同一个主题,请务必读过GPL 主题站下载的主题能用吗再动手。很多“59 美元的主题”算上依赖插件和续费,三年成本超过 500 美元。这个数字才是选型时的真实比较对象。

常见踩坑

  1. 把 Regular License 当“可无限使用”。给客户做站必须一site一码,这是最常见的合规失败点。
  2. 忘记 supported_until 的时间。买的时候以为一年,实际默认 6 个月。
  3. 以为到期就不能更新。Envato 规则下 License 到期后仍然可以下载作者后续发布的版本,只是不能获得新支持。反之,也要知道:支持到期 ≠ 功能失效。
  4. 保留 demo 图片作为上线素材。摄影图通常不在主题授权范围内。
  5. purchase code 入库/进 Git。它属于凭据,应放在环境变量或密码管理器里。
  6. 没有留存原始下载包。商品下架后无法再次下载,作者也没法给你补。买完立刻备份原始 zip。
  7. 案例:某建站公司 2019 年买了某热门 WP 主题,到 2022 年用它给第 4 个客户做站时才被提醒超出授权。公司决定按 4 份补买,但此时该主题已被作者下架,补买通道关闭,只能整体重做客户的站点;同时主题打包的必需滑块插件也已退出市场,导致新做的站点在细节上和旧站无法对齐。教训:主题一旦作为“公司标配”,就应该一次性买多份/开发者授权,并提前把依赖插件的版本包归档。

总结

购买前 checklist:确认最终产品数量 → 确认 support 是否含在内 → 记录 supported_until 到日历 → 归档原始下载包与依赖插件版本 → 替换演示图为自有素材 → 核查更新 API 归属。

判断标准很简单:能承担“作者明天停止维护”的项目,才可以依赖单一商用主题;否则应该选 GPL + 官方目录或自研子主题的路子。 另外记得把每个 purchase code 与站点的对应关系维护成台账——这件事成本极低,却能避免日后最贵的一次重做。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。