12SSL 平台变量与文案变更交接文档 (2026-10-11)
文档版本:v1.0
更新日期:2026-10-11
涉及系统:
- WHMCS 客户端业务模块 (
whmcs/modules/nicsrs_ssl/) - WHMCS 全局与主题语言包覆盖 (
whmcs/language-overrides/,whmcs/theme/lang-overrides/) - Portal 独立客户门户 (
portal/frontend/,portal/backend/)
目录
1. 变更背景与总体原则
本次变更主要围绕客户端证书生命周期管理详情页进行视觉与文案重构:
- 消除技术歧义:厘清“证书单期有效期”(受 CA/B 规则约 200 天)与“多年期订单服务保障期”的区别,将“服务保障期限”统一调整为更符合购买认知的“续费日期(Renewal Date)”,购买时间由“Purchase Date”调整为“Order Date”。
- 产品与标识标准化:证书顶栏徽章显示 WHMCS 真实产品名(如
PositiveSSL、RapidSSL),不再暴露模块内部代码;隐藏内部CERT-xxxx数据库流水号。 - 文案精炼与现代化:
- 动作动词精简:“重新签发”统一简称为“重签”;
- 验证流程精炼:“保存验证信息”改为“变更并保存(Change & Save)”,“重新验证”改为“验证(Verify)”;
- 简化标签:“证书状态”精简为“状态(Status)”。
- 视觉降噪与层级对齐:
- 剔除历史遗留的
.topTitle序号标题,对齐内边距; - 采用星号(
*)脚注机制取代醒目的感叹号警告框,降低用户心理焦虑。
- 剔除历史遗留的
2. WHMCS / nicsrs_ssl 模块变更详解
2.1 后端模型与变量注入 (nicsrsTemplate.php)
文件路径:whmcs/modules/nicsrs_ssl/src/model/Service/nicsrsTemplate.php
核心代码变更
在 nicsrsTemplate::complete() 方法中,扩展对 tblhosting 与 tblproducts 的关联查询,提取真实的套餐名称与购买开通时间:
php
$nextduedate = '';
$regdate = '';
$productName = '';
try {
$hosting = \WHMCS\Database\Capsule::table('tblhosting')
->leftJoin('tblproducts', 'tblproducts.id', '=', 'tblhosting.packageid')
->where('tblhosting.id', $service_id)
->first(['tblhosting.nextduedate', 'tblhosting.regdate', 'tblproducts.name as product_name']);
if ($hosting) {
if (!empty($hosting->nextduedate) && $hosting->nextduedate != '0000-00-00') {
$nextduedate = $hosting->nextduedate;
}
if (!empty($hosting->regdate) && $hosting->regdate != '0000-00-00') {
$regdate = $hosting->regdate;
}
if (!empty($hosting->product_name)) {
$productName = $hosting->product_name;
}
}
} catch (\Exception $e) {}模板导出变量
| 变量名 | 类型 | 说明 |
|---|---|---|
$productName | string | WHMCS 产品库中的真实产品名称(如 PositiveSSL Wildcard) |
$regdate | string | 购买/开通日期时间(格式 YYYY-MM-DD HH:MM:SS) |
$nextduedate | string | 续费到期日(格式 YYYY-MM-DD) |
2.2 已签发页面 (complete.tpl) 变量与指标重构
文件路径:whmcs/modules/nicsrs_ssl/view/complete.tpl
1. 衍生变量预处理
smarty
{assign var="regDateShort" value=$regdate|default:$configData.applyReturn.beginDate|substr:0:10}
{assign var="coverageEndDate" value=$nextduedate|default:'-'}
{if $certEndDateShort}
{if !$coverageEndDate || $coverageEndDate == '-' || $coverageEndDate == '0000-00-00' || ($nextDueDateShort && $certEndDateShort > $nextDueDateShort)}
{assign var="coverageEndDate" value=$certEndDateShort}
{/if}
{/if}- 业务对齐规则:当续费到期日为空、未指定或小于当前单期证书到期日时,续费日期字段自动对齐为当前单期证书到期时间
$certEndDateShort。
2. 指标栏(Metrics Bar)方案 A 4 项结构
| 栏目位 | 中文标签 | 英文标签 | 对应变量 | 逻辑说明 |
|---|---|---|---|---|
| 第 1 项 | CA 订单号 | CA Order ID | $vendorId | 去除原“CA 官方订单号”中的“官方”二字,支持一键复制 |
| 第 2 项 | 购买日期 | Order Date | $regDateShort | 取开通时间前 10 位,英文由 Purchase Date 改为 Order Date |
| 第 3 项 | 当前证书到期 | Current Cert Expiry | $certEndDateShort | 若多年期服务期大于单期到期日,附加绿色星号 * 悬浮提示 |
| 第 4 项 | 续费日期 | Renewal Date | $coverageEndDate | 原“服务保障期限 / Coverage Period”重命名,对齐保障期 |
3. 辅助注释与状态徽章
- 多年期重签提示:采用星号
*脚注模式替换原来的fa-info-circle醒目提示框,仅显示静默辅助说明:受行业安全规范(CA/B Forum)限制,单张证书最长约 200 天。您的订单享有完整服务期保障,系统将在当前证书到期前 30 天自动为您签发下期新证书(无需重新验证),届时直接在服务器替换即可。
- 产品徽章与验证类型:
- 产品名徽章:
{$productName|default:$product|default:$productCode} - 验证类型移至状态栏:
{$valType} [域名型/企业型/增强型],统一格式形如DV 域名型
- 产品名徽章:
2.3 待验证页面 (message.tpl & common.css) 结构与操作文案
文件路径:
whmcs/modules/nicsrs_ssl/view/message.tplwhmcs/modules/nicsrs_ssl/view/home/css/common.css
1. 结构精简
- 移除
#orderInfoPart与#domainPart中的<div class="topTitle">(去掉了带有圆圈序号的旧版标题栏)。 - CSS 规则更新:css
#tabOverview #sslContent.ssl-pending-view #orderInfoPart, #tabOverview #sslContent.ssl-pending-view #domainPart { position: relative !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; padding: 14px 20px !important; /* 移除了旧版的 48px 左侧占位内边距 */ background: transparent !important; } #tabOverview #sslContent.ssl-pending-view .topTitle { display: none !important; }
2. 字段与按钮文案变更
- 订单信息栏状态标签:
{$_LANG['cert_status']}(原“证书状态”改为“状态 / Status”)。 - DCV 验证操作按钮:
- 保存按钮:
{$_LANG['save_verification']}-> “变更并保存 / Change & Save” - 触发验证按钮:
{$_LANG['request_verification']}-> “验证 / Verify”
- 保存按钮:
2.4 模块与系统语言包 (chinese.php / english.php)
文件路径:
whmcs/modules/nicsrs_ssl/lang/chinese.phpwhmcs/modules/nicsrs_ssl/lang/english.phpwhmcs/language-overrides/chinese.phpwhmcs/theme/lang-overrides/chinese.php
php
// 1. whmcs/modules/nicsrs_ssl/lang/chinese.php
$_LANG['save_verification'] = '变更并保存'; // 原:保存验证信息
$_LANG['request_verification'] = '验证'; // 原:重新验证
$_LANG['cert_status'] = '状态'; // 原:证书状态
// 2. whmcs/modules/nicsrs_ssl/lang/english.php
$_LANG['save_verification'] = 'Change & Save'; // 原:Save Verification
$_LANG['request_verification'] = 'Verify'; // 原:Re-verify
$_LANG['cert_status'] = 'Status'; // 原:Certificate Status
// 3. whmcs 全局语言覆盖 (language-overrides 与 theme/lang-overrides)
$_LANG['ssl']['reissueCertificate'] = "重签证书"; // 原:重新签发证书3. Portal 门户变量与文案变更详解
Portal 独立客户端前端(Vue 3 + i18n)同步统一了状态体系与界面文案。
3.1 证书状态与操作映射 (i18n/index.ts)
文件路径:portal/frontend/src/i18n/index.ts
| 键名 (Key) | 中文修改前 | 中文修改后 | 英文修改前 | 英文修改后 |
|---|---|---|---|---|
status.validating | 待验证 | 待验证 | Validating | Pending Validation |
status.submitting | 处理中 | 提交中 | Processing | Submitting |
status.draft | 未完成草稿 | 未绑定域名 | Incomplete Draft | No domain yet |
status.pending | 待配置 | 待提交 | Pending Config | Not Submitted |
status.issued | 已颁发 | 已签发 | Active | Issued |
dashboard.needsAttention | 需要处理 | 待处理 | Needs Attention | Needs Attention |
3.2 验证级别与产品展示 (CertificateDetailView.vue)
文件路径:portal/frontend/src/views/CertificateDetailView.vue
- 验证级别徽章:
- 界面主标签紧凑显示大写标识:
DV/OV/EV。 - 鼠标悬浮 Tooltip 显示全称:
DV: “域名型 (DV) / Domain Validation (DV)”OV: “企业型 (OV) / Organization Validation (OV)”EV: “增强型 (EV) / Extended Validation (EV)”
- 界面主标签紧凑显示大写标识:
- 隐藏内部流水号:
- 列表、面包屑与详情页不再主推
CERT-xxxx内部系统自增号,改由productLabel()生成规范商业产品名称。 - 针对无域名的证书占位安全回退为
—。
- 列表、面包屑与详情页不再主推
4. 全量变量与字段对照速查表
| 系统模块 | 位置 / 文件 | 变量 / 标识符 | 原设定 (Old) | 新设定 (New) | 适用语言 |
|---|---|---|---|---|---|
| WHMCS | complete.tpl | 身份栏产品徽章 | {$productCode} | {$productName} | 中/英 |
| WHMCS | complete.tpl | 指标栏第 1 项标签 | CA 官方订单号 / CA Order Number | CA 订单号 / CA Order ID | 中/英 |
| WHMCS | complete.tpl | 指标栏第 2 项标签 | (原无) / Purchase Date | 购买日期 / Order Date | 中/英 |
| WHMCS | complete.tpl | 指标栏第 2 项数值 | (原无) | {$regDateShort} | 通用 |
| WHMCS | complete.tpl | 指标栏第 3 项标签 | 有效期至 / Valid Until | 当前证书到期 / Current Cert Expiry | 中/英 |
| WHMCS | complete.tpl | 指标栏第 4 项标签 | 服务保障期限 / Coverage Period | 续费日期 / Renewal Date | 中/英 |
| WHMCS | complete.tpl | 指标栏第 4 项数值 | {$nextduedate} | {$coverageEndDate} (含自动对齐) | 通用 |
| WHMCS | complete.tpl | 操作按钮文本 | 重新签发 / Reissue | 重签 / Reissue | 中文 |
| WHMCS | message.tpl | 状态字段标签 | $_LANG['cert_status'] | 状态 / Status | 中/英 |
| WHMCS | message.tpl | DCV 保存按钮 | $_LANG['save_verification'] | 变更并保存 / Change & Save | 中/英 |
| WHMCS | message.tpl | DCV 验证按钮 | $_LANG['request_verification'] | 验证 / Verify | 中/英 |
| WHMCS | message.tpl | 标题节点 | <div class="topTitle"> | 彻底移除 | DOM |
| Portal | i18n/index.ts | 验证中状态 | status.validating | 待验证 / Pending Validation | 中/英 |
| Portal | i18n/index.ts | 提交中状态 | status.submitting | 提交中 / Submitting | 中/英 |
| Portal | DetailView | 级别徽章 | validationLevel | DV / OV / EV (含 Tooltip) | 中/英 |
5. 环境路径与发布验证指引
5.1 部署目标路径
- 生产服务器 (
prod: 147.93.173.38):- 模块目录:
/home/ssl12/web/client.12ssl.com/public_html/modules/servers/nicsrs_ssl/ - 语言覆盖:
/home/ssl12/web/client.12ssl.com/public_html/lang/overrides/与/home/ssl12/web/client.12ssl.com/public_html/templates/{theme}/lang/overrides/ - Smarty 缓存:
/home/ssl12/templates_c/
- 模块目录:
- 备用同步节点 (
agent-us: /root/12ssl-platform):- Git 主干自动同步仓库。
5.2 变更生效与刷新指令
在服务器更新文件后,必须执行以下指令以确保 Smarty 模板缓存更新和 PHP 字节码刷新:
bash
# 1. 修复文件属主
chown -R ssl12:ssl12 /home/ssl12/web/client.12ssl.com/public_html/modules/servers/nicsrs_ssl/
# 2. 清理 WHMCS Smarty 模板缓存
rm -rf /home/ssl12/templates_c/*
# 3. 重载 PHP-FPM
systemctl reload php8.2-fpm5.3 线上验证用例
- 已签发产品详情页验证(测试用例 ID:
20995、21816、21809):- https://client.12ssl.com/clientarea.php?action=productdetails&id=20995
- 验证:CA 订单号 | 购买日期 | 当前证书到期 | 续费日期 4 项展示及星号自动重签注释。
- 待验证产品详情页验证(测试用例 ID:
21818):- https://client.12ssl.com/clientarea.php?action=productdetails&id=21818&language=english
- 验证:
.topTitle已不复存在,字段显示Status,按钮显示Change & Save与Verify。
