kate522
af72364078
feat(security): 新增网站安全扩展模块并支持修改手机脱敏验证
2026-10-06 09:26:55 +08:00
kate522
ce429e1caf
fix(profile): align account modal UI
2026-10-06 01:46:48 +08:00
kate522
248912f610
fix(profile): align account dialogs and contracts
2026-10-06 01:09:04 +08:00
kate522
0cf4639d95
fix(profile): match account submit buttons
2026-10-05 19:54:00 +08:00
kate522
346146b4fa
feat(profile): rebuild account settings page
2026-10-05 18:58:49 +08:00
kate522
5091da6a60
feat(sms): align provider and verification flow
2026-10-05 02:13:52 +08:00
kate522
2ae2b2fd07
fix(identity): validate evidence by file content
2026-10-04 23:13:48 +08:00
kate522
8fcb136d55
fix(identity): draw intro list markers inside list items
2026-10-04 22:51:21 +08:00
kate522
d6e3b377b4
fix(identity): apply safe list styles in modal runtime
2026-10-04 22:25:15 +08:00
kate522
67ec3c8aeb
fix(identity): align application modal with reference
2026-10-04 21:49:39 +08:00
kate522
59901b9e10
feat(identity): align auth flow with reference theme
2026-10-04 21:10:12 +08:00
kate522
61667aa03c
feat(revenue): immediate commission credit with independent withdrawable pool
...
Aligns affiliate commission with the reference theme: commission is credited
to a dedicated COMMISSION asset pool the moment an order is paid, removing the
7-day settlement freeze, the settlement cron, and the settlement_days setting.
- Ledger: add AssetType::COMMISSION (isolated from the recharge balance wallet)
- CommissionLedger: credit-on-record + opportunistic debt repayment; refunds
claw back the full commission from the pool, carrying any shortfall as debt
(aksrt_commission_debt) that future commission pays down first
- Withdrawal: make asset-aware via a source discriminator (commission vs
balance); each pool keeps independent daily limits, pending gate, and
reject-refund. Balance withdrawal (recharge + creator income) is unchanged
- Fix pay_rebate_self_s: honor self-commission at purchase time
- Revenue card: show pool balance + 累计/已提现 (drop 待结算), debt when present
- Schema 2.0.0 -> 2.1.0: add commission_debt, drop freeze columns
2026-09-28 21:27:44 +08:00
kate522 and Claude Fable 5
7761435a81
refactor(revenue): drop standalone QR block and align promotion card with reference
...
The 推广收益 detail card no longer renders the QR code as its own row. The
card becomes a fixed-label info list: 推广链接 [Url][复制链接][推广海报] /
佣金比例 / 累计佣金 / 返佣详解, mirroring the reference theme's 推广中心 card.
- profile-revenue.php: QR row removed; poster button moved into the link row and
gated server-side on the poster switch; copy label now 复制链接; 推广人数 row
dropped; 返佣详解 heading reads the existing pay_rebate_text_details_title;
dead $vip_ratios, aksrt-revenue-page class and data-min-amount removed
- new affiliate-poster-modal.php: poster previews in a modal before download
(reuses .uc-modal + single-render guard), since the QR now only exists inside
the poster
- credits.js: renderAffiliateQr and its call deleted, along with the dead
[data-affiliate-payers] lookup and the inline ch-width hack; initAffiliatePoster
builds the poster into the modal stage and reveals 保存海报
- PaymentRuntime: expose affiliate details_title
- user-center.js: remove never-defined AKSRTRevenueCenterInit guards (2 sites)
- CSS: revenue-earnings.css pruned to live rules plus the new link-row grid and
poster stage styles; routes/user-center/revenue.css pruned to its only
definitions; dead leaves routes/revenue.css and routes/commerce.css deleted and
dequeued from the user-center part list
- tests: referral-qr-contract test 2 rewritten for the QR-free card, link row and
poster modal; post-visual-contract leaf list updated with regression guards
qrcode.min.js stays enqueued — buildPosterCanvas still draws the QR inside the
poster. Net -833 lines.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-09-27 21:42:57 +08:00
kate522
c315297d7f
fix(profile): align user page content width
2026-09-23 12:16:26 +08:00
kate522
a4af024f32
feat(ban): align ban prompts with the reference theme modals and block page
...
对照参考主题(Zibll)修正四项偏差,申诉链路从页面整体迁移至弹窗:
- feat(ban): 新增三个 1:1 复刻弹窗(REST /user-ban/{info,appeal,log}-modal):
查看禁封状态(多彩头 c-gray + 信息行 + 申诉按钮)、禁封申诉(edit-header
gavel/c-blue + 信息框 + 资料项 data[key] 输入 + 审核中态 + 禁止申诉态)、
禁封记录(多彩头 c-yellow + 计数 + 逐条卡片);user-ban.js 增加
data-aksrt-ban-info/appeal/log 委托与 admin-ajax 申诉提交
- feat(ban): 禁封/解封弹窗的「当前用户已有N次禁封记录」静态文案改为可点击
黄链(N>1),打开禁封记录弹窗;解封视图信息行改复用统一数据源
- refactor(ban): 治理展示态收敛至 Restriction::state_badges()(封号=c-red
违规已封号 / 小黑屋=c-yellow 小黑屋禁封中 / 禁言=c-gray 禁言中,颜色与
字段统一管理)+ get_ban_info()(状态/起止时间/原因/说明/申诉权限,
三弹窗与禁封页共用)
- feat(ban): 登录行为对齐参考主题——移除登录期拦截(enforce_login_ban)
与 complete_login 禁封闸门,封号用户可正常登录;新增 template_redirect
前台禁封页(1:1 zib_user_ban_restrict_login/zib_die_page:红盒提示 +
信息行 + 申诉权限 + 退出登录/申诉按钮,模板 templates/parts/user/ban-block.php)
- feat(profile): 公开主页禁封状态从资料卡下方提示框改为占据身份行元信息位
的 badg 徽章(参考主题 author_header_identity 语义);用户中心元信息改为
but 按钮(徽章+箭头)打开查看禁封状态弹窗;评论拒绝态链接同源
- refactor: 移除申诉页面模板(page-ban-appeal.php)及其资产/注册/入队、
get_profile_notice/profile_notice 链、state_labels/state_notices/
login_ban_message、UserRuntime 的 public_notice/ban_notice_text 死配置、
report_settings 死键、无消费方的 aksrt_ban_appeal_status 端点
- feat(ban): BanAppeal::ajax_submit 兼容弹窗 data[key] 表单结构
(逐项清洗入库,申诉说明取 data['申诉说明'],旧平铺字段保持兼容)
- chore: 重新构建 public.css/public.min.css(三个新弹窗几何与头部样式)
- test: 契约测试重写(徽章元信息位、三弹窗与记录链接、禁封页、允许登录 +
前台拦截、死代码移除断言),全量 362 项通过
2026-09-22 19:14:02 +08:00
kate522
11eda33e58
fix(ban): state-aware ban copy and real login failure reasons
...
- fix(profile): 封号用户的公开主页提示不再沿用「当前账号处于限制状态,
部分互动能力已关闭」——封号=全面限制(无法登录),该描述与语境不符。
提示尾句按治理展示态分级:封号→禁封期间无法登录、账号功能全面停用;
小黑屋→发布、评论等操作已受限制;禁言→暂时无法发表评论。
UserRuntime 不再烘焙通用默认文案,缺省时由 get_profile_notice 按态取
- fix(auth): 登录失败透传真实原因——REST auth_login 此前将
Service::login_user 返回的具体错误硬编码为「账号或密码错误」,
禁封用户登录时 Toast 语境错误;现透传 error 字段,
friendly_login_error 识别 user_banned 错误码后直接返回禁封文案
(无法登录 + 解封时间/永久 + 原因)
- fix(auth): 禁封闸口覆盖全部登录路径——此前仅密码登录经
enforce_login_ban 拦截,短信验证码、公众号扫码、第三方 OAuth 均
直连 complete_login 可绕过封号限制;现将闸口收敛至 complete_login
(返回 WP_Error),各调用方中止登录并透出原因;OAuth 重定向新增
account_banned 错误码,auth.js 与 user-center.js 同步文案映射
- test: 新增登录禁封面契约测试(文案单一来源、Toast 透传、免密闸口、
统一收口、前端映射),全量 362 项通过
2026-09-22 18:36:09 +08:00
kate522
632a7d15ba
fix(user): replicate level center page
2026-09-13 21:28:10 +08:00
kate522
7308f055c7
fix(frontend): keep asset and homepage filters in DOM
2026-09-03 19:21:24 +08:00
kate522
5fd7c212ed
fix(runtime): 按参考主题硬切换为 loader/main/auto_fun 单一 DOM 生命周期
...
- 删除 AksrtFrontend registry/rehydrate 双路架构及 build/public.js 拼包入口,
前台唯一初始路径为 PHP 本地栈(jQuery 1.9.1 → Bootstrap 3.4.1)
→ loader_js(_win/aksrtData 唯一注入)→ tbquire(['main']) → runtime/main.min.js
- window.auto_fun = debounce(z_auto_fun, 100) 为唯一重扫入口;所有模块改为
执行一次 + off/on('auto_fun.aksrt-*') 命名空间重扫,data/class 标记幂等
- 局部更新协议统一:HTML 注入 → post_ajax.ed → auto_fun();
远程 modal → loaded.bs.modal → auto_fun();JSON 成功 → zib_ajax.success
- 灯箱恢复 Miniimgbox/imgbox 唯一 owner(imgbox-container、a[data-imgbox]、
imgbox_data),删除 AksrtLightbox/data-aksrt-lightbox 第二实现及 CSS/overlay,
_win.imgbox* 重新接上 post-display 设置
- 死代码清理:runtime 下 11 组被自有实现替代的旧模块副本、无消费 vendored 库、
顶层 grade.min.js、revenue.js、无调用方的 aksrt_get_win_runtime_config(),
以及 loader 中 16 条死 mapping
- PHP 入队改为本地栈 + loader_js,routed/widget/submit 依赖统一换绑;
用户卡片发布按钮恢复 nav_user_newposts_btn 设置门控
- 测试对齐:新增 frontend-lifecycle-contract,重写 navigation/lazyload/toast/
auth-source/comment/page-display/post-visual 等断言为目标架构契约
验证:node --test widget-system+navigation 223 通过 0 失败;
构建脚本重建 main/imgbox min 与 CSS bundles;改动 PHP php -l、JS node --check
全部通过;git diff --check 干净;credits 重入 harness 通过。
2026-09-03 12:44:31 +08:00
kate522
1f4a39d8f8
feat(runtime): 全站前端脚本统一接入 AksrtFrontend 全局 DOM 生命周期
...
- rehydrate.js 新增 boot()/aksrt:ready 事件,支持 boot 后晚注册立即以 init 触发
- aksrt-runtime.js 初始加载改走 AksrtFrontend.boot,tooltip/倒计时注册为组件
- 约 30 个前端脚本(首页、评论、支付、路由、页面叶子、widgets)
从直接 DOMContentLoaded 迁移为 AksrtFrontend.register,并加幂等标记
- section-navs 依赖改为 aksrt-runtime,保证注册时序
- 清理死代码:删除孤儿 loader.js/main.js 及 runtime/page-navs 遗留副本
- loader.js 移除已迁移模块的 tbquire 路径映射,main.js 相应瘦身
- build-public-assets.mjs 增加 runtime/main.min.js 自动压缩步骤
- 新增 4 个契约测试(homepage-dom/rehydrate-runtime/global-dom-init/
public-bundle-parity),3 个既有 harness 适配注册表初始化方式
2026-09-02 21:48:56 +08:00
kate522
ff4ec1eb43
feat(captcha): 打通人机验证 11 个场景的前后端完整链路
...
- 统一验证入口 aksrt_require_captcha(),返回 true|WP_Error,启用场景配置缺失时 fail-closed 拒绝
- 前端公共 API 重构为 window.AKSRTCaptcha(verify/collect/reset/run),单飞锁防并发重复验证,一次性 proof 绑定浏览器 cookie+场景+服务商+主机名
- challenge/exchange REST 端点:challenge 原子占用防票据放大厂商调用,增加频率限制
- 新增 OAuth bind pass:服务端签发 5 分钟一次性令牌,绑定用户+服务商+浏览器,微信扫码延迟消费
- 覆盖场景:评论、登录、注册、绑定第三方、绑定手机、找回密码、修改密码、更改邮箱、资料下载、签到、前台投稿
- 移除 Service 层重复验证与 _auth_code_verified/_defer_login 等客户端可伪造标志,删除下载共享 pass 死代码
- 修复腾讯 TC3 签名 scope、Cloudflare action/cdata/hostname 严格校验、阿里云验签错误码映射
- 后台 Schema 保存对 secret 字段做掩码/保留合并;导入导出过滤 aksrt_captcha_config
- 重建 public bundle 与 admin SPA;新增 captcha 运行时/安全/业务契约测试与 harness
2026-09-02 13:03:24 +08:00
kate522
780e1eba21
优化了一些问题
2026-08-29 22:03:48 +08:00
kate522
11f1c23fa7
进行了一些小优化
2026-08-25 17:02:33 +08:00
kate522
4a4009133c
进行了一些小优化
2026-08-25 16:33:36 +08:00
kate522
58f3f42bf8
修复两个问题
2026-08-24 16:38:03 +08:00
kate522
5cae5b5c93
积分与余额账务系统硬切重构
2026-08-24 15:59:11 +08:00
kate522
86692ff3f9
用户功能设置收口与废弃后台链路清理
2026-08-23 22:09:12 +08:00
kate522
af52f9e94d
登录注册体系的源码级硬切换
2026-08-23 20:30:01 +08:00
kate522
886ea8732c
fix(profile): restore route styles and hidden modals
2026-08-19 14:08:42 +08:00
kate522
95553086dd
(fix):update user setting toast
2026-08-18 03:48:50 +08:00
kate522
e429b59077
(fix):update user profile toast
2026-08-18 03:27:42 +08:00
kate522
86614c4905
refactor(frontend): replace toast system with zibll notyf
2026-08-18 02:38:43 +08:00
kate522
651c75fea1
fix: improve promotion tabs and referral layout
2026-08-16 21:51:53 +08:00
kate522
d4876bb125
fix: improve promotion tabs and referral layout
2026-08-16 21:47:41 +08:00
kate522
853114a9f9
fix: improve promotion tabs and referral layout
2026-08-16 21:28:02 +08:00
kate522
5b9f54f5ac
fix: improve promotion tabs and referral layout
2026-08-16 20:52:15 +08:00
kate522
6dbb556d60
feat: merge promotion and earnings center
2026-08-16 19:54:12 +08:00
kate522
8241570ca2
feat(users): govern profiles and access
...
Normalize fixed profile fields, profile actions, and the five-column capability matrix for comments, uploads, and downloads.
2026-08-13 00:24:54 +08:00
kate522
ce2b266890
fix(users): keep management inside center
2026-08-12 20:59:31 +08:00
kate522
c3bfd12c69
fix(users): keep center navigation local and restore public home
2026-08-12 20:02:37 +08:00
kate522
dacd0095bf
feat(users): normalize center routes and withdrawal limits
2026-08-12 19:44:47 +08:00
kate522
651c5f28f8
fix(orders): load user center assets before panel navigation
2026-08-12 16:48:40 +08:00
kate522
ddc762bfbd
fix(vip): honor manual membership changes
2026-08-11 16:03:06 +08:00
kate522
cfb0a1368c
fix(user-center): close creator income review gaps
2026-08-07 13:16:10 +08:00
kate522
e20418e909
feat(payment): separate creator income settlement
2026-08-07 12:39:32 +08:00
kate522 and Claude Fable 5
9e6ae32fc1
feat(payment): complete creator income center
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-07 10:59:58 +08:00
kate522 and Claude Fable 5
ceff04ce54
feat(user-center): add dedicated creator workspace
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-06 17:23:31 +08:00
kate522
2f9384f368
feat(user-center): upgrade posts panel to creator center
2026-08-06 16:24:59 +08:00
kate522 and Claude Fable 5
8a007b9ee7
fix(user-center): restore ajax tab navigation
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-06 12:41:36 +08:00
kate522 and Claude Fable 5
02fcde3c84
fix(user-center): load revenue tabs without refresh
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-08-06 10:42:32 +08:00