fix(vip): 在 /user/vip/ 档位购买卡下方补充积分兑换会员入口

参考主题 zibpay_user_page_tab_content_vip:非会员 + 积分兑换会员开启 +
有可兑换套餐时,在两张档位购买卡下方输出全宽入口横条(points-color 图标
+ 标题 + 立即兑换 badg),点击经 data-aksrt-vip-points-open 打开 wp_footer
静态兑换弹窗,与会员购买弹窗内入口共用同一弹窗。

- aksrt-vip.php 新增 aksrt_get_vip_points_exchange_entry_html(),门控与
  弹窗壳同源(取服务端 catalog),已是会员不展示(对齐参考主题契约)
- vip-tab.php 在卡片区之后输出入口;credits.css 补 .uc-vip-points-entry
  表面样式(与档位卡同一变量体系,暗色自适应)
- pay-vip.js 改文档级委托承接 data-aksrt-vip-points-open,一处绑定覆盖
  静态页面横条与弹窗内按钮;移除 bindModalUi 内的重复分支
- 契约测试更新为双入口(11 项),node --test 420 项通过,php -l 通过

未写数据迁移;未做真实视觉效果验收。
This commit is contained in:
kate522 committed 2026-09-23 14:30:54 +08:00
1 parent b798c7a45d
commit 2801a89c1f
7 files changed
+164 -22

No files matched your search

+13 -6
View File
@@ -695,12 +695,6 @@
});
return;
}
var pointsLink = event.target.closest("[data-aksrt-vip-points-open]");
if (pointsLink) {
event.preventDefault();
openPointsModal(pointsLink);
return;
}
var submit = event.target.closest("[data-vip-submit]");
if (submit) {
event.preventDefault();
@@ -763,11 +757,24 @@
}
});
// 积分兑换入口(data-aksrt-vip-points-open)文档级委托:一处绑定同时覆盖
// /user/vip/ 页面静态输出的入口横条与会员购买弹窗内运行时注入的同款按钮
// (事件冒泡至 document,弹窗内不再单独挂监听)。
function bindPointsEntry() {
document.addEventListener("click", function (event) {
var pointsLink = event.target.closest ? event.target.closest("[data-aksrt-vip-points-open]") : null;
if (!pointsLink) return;
event.preventDefault();
openPointsModal(pointsLink);
});
}
function bindOnce() {
if (window.__aksrtPayVipBound) return;
window.__aksrtPayVipBound = true;
document.addEventListener("click", onDocClick, true);
bindPointsModal();
bindPointsEntry();
}
jQuery(document).off("auto_fun.aksrt-pay-vip").on("auto_fun.aksrt-pay-vip", bindOnce);