feat(payment): 新增「售后策略」配置与前台售后弹窗链路

- 后台「支付&付费 → 售后策略」:售后功能开关、申请时效、超时效提示(HTML)、
  预置原因、申请售后说明、所需材料、申请说明占位文案、可上传图片开关;
  PHP schema 与 SPA schema 1:1 对齐,group 字段支持拖拽排序
- PaymentRuntime 新增售后设置解析(缺键回退 schema 默认、HTML 走 kses、
  中文原因稳定 slug)与 after_sale_expired 时效判定(支付时间起算)
- 售后工单支持举证图片(order_aftersale.images 列,最多 3 张,
  复用评论图片上传校验)与上传路由;订单视图模型输出 after_sale 按钮状态
- 前台申请 / 超时效提示 / 售后详细三个独立弹窗(modal-mini + 蓝色炫彩头),
  订单详情弹窗不再内嵌售后表单并清理相关死代码
- 新增 after-sale-policy 契约测试与运行时 harness,527 项契约测试通过
This commit is contained in:
2026-10-06 22:21:47 +08:00
parent b447c41f13
commit 1a9a2762f3
19 changed files with 1835 additions and 86 deletions
+12
View File
@@ -407,6 +407,18 @@ trait ScriptsPart1b {
true
);
}
// 售后弹窗(申请 / 超时效提示 / 售后详细):与订单中心同面板、同条件入队。
$order_after_sale_js = get_template_directory() . '/assets/js/order-after-sale.js';
if (file_exists($order_after_sale_js)) {
wp_enqueue_script(
'aksrt-order-after-sale',
$base_uri . '/assets/js/order-after-sale.js',
['loader_js'],
(string) filemtime($order_after_sale_js),
true
);
}
}
$identity_js = get_template_directory() . '/assets/js/routes/user-center-auth.js';