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:
1 parent
b798c7a45d
commit
2801a89c1f
7 files changed
+164
-22
No files matched your search
+13
-6
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user