kate522 and Claude Opus 5
35bb96e82f
refactor: rename the theme brand and every identifier from AKSRT to Jio
...
Full-project rename. `git grep -i aksrt` is now empty apart from the
DBMigrator 3.3.0 changelog note that documents the rename itself.
Code identifiers
- PHP namespace AKSRT\ -> Jio\ (composer PSR-4 + 378 declarations)
- global constants AKSRT_* -> JIO_* (VERSION/DIR/URI, PAY_TYPE_*, CAPTCHA_*)
- procedural functions, hooks, options, meta keys, table names,
cookies, query vars, ajax actions and nonces: aksrt_ -> jio_
- text domain aksrt -> jio; Theme Name -> Jio
- JS globals: aksrtData/aksrtAdminData/... -> jioData/jioAdminData/...,
window.AKSRTCaptcha & friends -> window.JioCaptcha, Aksrt* -> Jio*
- Vue components Aks*.vue -> Jio*.vue (15 files renamed + imports)
- CSS classes/data-attrs/custom properties: aksrt- -> jio-
- REST namespace aksrt/v1 -> jio/v1 (incl. payment gateway callbacks)
Storage layer
- DB tables {prefix}aksrt_* -> {prefix}jio_*; SCHEMA_VERSION 3.2.0 -> 3.3.0
so dbDelta creates the new names on install
- widget id_base aksrt_widget_* -> jio_widget_*
- uninstall.php drop list rebuilt from the actual migrator tables
(dropped 3 stale entries, added the 17 missing ones)
Removed
- hardcoded https://api.aksrt.com/version.json default update endpoint;
get_endpoint() now reads the 「更新端点」 setting and do_check() no-ops
when it is empty
Files renamed: inc/helpers/aksrt-*.php -> jio-*.php (54),
assets/admin/src/components/form/Aks*.vue -> Jio*.vue (15).
Build artifacts regenerated: assets/css/build, assets/js/runtime,
assets/admin/build.
Verified: audit-psr4-paths errors=0, audit-admin-contracts errors=0
(warnings=56, unchanged baseline), 813/813 widget-system tests,
44/44 phpunit, php -l clean across all PHP.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-11-01 20:05:04 +08:00
kate522 and Claude Opus 5
5c6b422866
fix(frontend): route every user-center points label through the custom currency name
...
后台「积分配置 → 自定义货币名称」改名后,用户中心仍有大量硬编码
「积分」:做任务赚积分 / 购买积分 / 签到领积分、积分记录 / 积分任务、
每日可免费获取 XX 积分、我的积分、积分+1、创作中心积分收益等。
get_currency_name() 早已存在且可用,问题只是这些文案没有走它。
本PR 全部替换,无双路、无迁移:
服务端渲染(用户中心 renderers)
- credits-balance.php:购买/做任务赚/签到领 + 整个购买弹窗
- profile-credits.php:积分记录 / 积分任务 页签
- credits-points-tasks.php:每日上限三态与空态
- sidebar-creator.php / profile-creator.php:积分收益
- transfer-modal.php:积分转账提示
- Signin.php:签到详情弹窗(我的积分 / 奖励 tooltip / 积分+N)
- VipServiceModal.php:我的积分 / 积分兑换会员
- download-permission-card.php:购买价格
客户端渲染(JS 无法调用 PHP,注入 currencyName 到 aksrtData)
- signin.js:签到状态行「已签到 N 天 +1」
- credits.js:转账标题/金额标签 + 购买提示 toast
- cms-download.js:积分不足视图、我的积分 入口、余额不足文案
- pay-vip.js:积分兑换会员入口(优先 catalog.currency_name)
- order-center.js:订单行单位回退
契约测试同步改为断言模板构造而非死字符串,并新增两例:
改名后跟随、未注入时回退「积分」。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-11-01 15:09:49 +08:00
kate522 and Claude Fable 5
1df2822f01
feat(pay): 统一收银台四种模式(站内二维码/当前页跳转/表单提交/JSAPI)
...
- PaymentOrchestrator 统一返回 mode + code_url/payment_url/form_html/jsapi_params
- 支付宝:当面付二维码 / 电脑网站支付 / H5;微信:Native / H5 / JSAPI(WechatOpenid 静默授权)
- 易支付:PC mapi 二维码,移动端自动提交表单
- 删除旧键 alipay_payment_type / wechat_payment_type / epay_device 与 redirect/qr_content 字段
- 新增 pay-cashier.js,移除 window.open,订单状态接口改为 /pay/order/{n}
- 拆分 credits.js(affiliate / withdraw-history)至 1000 行以内
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-10-29 14:01:28 +08:00
kate522 and Claude Fable 5
c3328e7279
fix(pay): 待支付浮窗无刷新同步
...
- modal-cache 失效时广播 aksrt:cache:invalidated
- 新增 GET /orders/wait-pay-float 返回浮窗片段
- wait-pay-float.js 监听 orders 标签失效并替换/移除浮窗、重启倒计时
- VIP/充值/下载待支付分支触发 orders 失效
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-10-29 11:11:13 +08:00
kate522
ab495854d5
feat(download): switch download buttons to direct source links
...
The token relay still stood between the button and the file: every click
issued a short-lived token URL, so downloads never reached the real
source address directly.
- Render direct anchors (target=_blank) to the raw source URL in the
download box and the paid card, with inline extract-code buttons
- Retire the relay: delete Content\Download plus its init wiring, header
query-var branch and SEO noindex branch, and drop the dead
download-request flow from cms-download.js (cashier, scan-pay and
error views stay)
- Keep the dl_token table and the download logs page as read-only
history; unscheduling of the orphaned cleanup cron is preserved
2026-09-24 19:12:45 +08:00
kate522
bc97c4ddc3
refactor(download): open generated links directly without the popup
...
The success modal added a second click between the download button and
the file: request -> "下载链接已生成" popup -> 立即下载. Drop it and open
the generated relay link right away, keeping the previous new-tab
behaviour; a missing link still surfaces the error view.
- Replace renderSuccess with startDownload (anchor + target=_blank)
- Remove the popup-only CSS: alert, code-row, copy button, chips, meta
and the download action skin; error, cashier and scan-pay views keep
their styles
2026-09-24 18:56:36 +08:00
kate522
098df7f921
fix(user-center): 去除余额金额显示前¥符号
2026-09-16 17:39:40 +08:00
kate522
9dc278bd83
fix payment points
2026-09-04 23:35:19 +08:00
kate522
5984d4e42d
fix(icons): 清理 FA4 残留图标类,统一为 Font Awesome 5 约定
...
- 通用 fa fa-X 前缀改为 fa fas fa-X(12 个生产文件)
- 重命名图标映射:fa-sign-in→fa-sign-in-alt、fa-envelope-o→far fa-envelope、
fa-trash-o→far fa-trash-alt、fa-file-image-o→far fa-file-image、
fa-dot-circle-o→far fa-dot-circle、fa-play-circle-o→far fa-play-circle、
fa-pencil→fas fa-pencil-alt
- 修复 FA5 中不存在的 fa-pencil-square→fas fa-edit
2026-09-02 21:48:42 +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
ad128ef94e
进行了一些优化
2026-08-27 02:29:40 +08:00
kate522
17dabca568
进行了一些优化
2026-08-27 02:25:34 +08:00
kate522
c6e0423e46
进行了一些优化
2026-08-27 02:19:41 +08:00
kate522
af3539914d
进行了一些小修复
2026-08-26 22:50:35 +08:00
kate522
562beb15cf
进行了一些小修复
2026-08-26 15:29:37 +08:00
kate522
5cae5b5c93
积分与余额账务系统硬切重构
2026-08-24 15:59:11 +08:00
kate522
a0b84977a2
feat(navigation): hard-switch to Zibll navigation and Font Awesome 5
2026-08-18 20:46:21 +08:00
kate522
2bbd7c01a3
feat: remove forum feature (Phase 1)
2026-08-02 20:02:44 +08:00
kate522
3267bee71e
fix(payment): wire balance wallet end-to-end when pay_balance_s is on
...
Opening 余额功能 alone now enables cash-wallet pay (unless 余额支付 is explicitly off). Drop points-as-balance fallback, stop fake method injection, expose real wallet in cashiers, and honor auto_to_balance on recharge fulfill.
2026-07-25 12:46:38 +08:00
kate522
cb43412369
feat(forum): plate follow cash coupons + free auto-order
...
- Meta _aksrt_follow_pay_coupon_s + plate admin toggle (money only)
- Plate_Follow_Pay soft/hard coupon apply, free-after-discount, burn via shared helper
- Cashier auto-submits free topic/plate orders; topic coupon label no longer "预留"
2026-07-15 13:21:48 +08:00
kate522
78d3189f8f
feat(forum): P1 topic coupons, P2 plate follow gateway, cash creator revenue
...
- Topic_Pay: soft/hard coupon validate, payable amount, free-after-discount, paid burn
- Creator_Revenue: settle content/topic/plate_follow cash (type=order), keep shop path
- Plate VIP1/VIP2 meta + resolve_plate_follow_pay_price via aksrt_get_user_vip_level
- New AKSRT_Plate_Follow_Pay REST multi-gateway; remove Credits×100 money bypass
- Frontend: cms-download plate_follow apiKind + forum-governance money cashier bridge
2026-07-15 13:04:04 +08:00
kate522
cea22daae7
feat(forum): multi-gateway cashier for pay-visibility topics
...
Replace balance-only AJAX topic purchase with AKSRT_Topic_Pay REST
cashier (resource orders + Payment_Gateway), reuse cms-download modal,
and unlock on aksrt_order_paid.
2026-07-15 12:27:59 +08:00
kate522
5d7b138c2c
feat(pay): content cashier coupon and rebate discount chain
...
Wire zibll-style cash content discounts: VIP list price → buyer 推广折扣 → coupon, then commission on final pay. Reuse AKSRT_Coupon, add Invite::get_referrer, cashier UI, and paid-time coupon burn + rebate_log.
2026-07-14 19:38:05 +08:00
kate522
8e9e05c859
feat(pay): guest cash purchase with signed cookie unlock (zibll-style)
...
Allow pay_no_logged_in cash content orders (user_id=0), set aksrt_pay_* cookies
on paid, accept cookie in access state, and expose guest CTA on paywall/box.
2026-07-14 12:19:22 +08:00
kate522
8f15d16d35
feat(pay): sales volume, paid order meta, pending resume, limit-over buy
...
Bump content sales on resource order paid; show order number/time in download
box; poll pending gateway payments; support download_limit_over_price overbuy.
2026-07-14 12:04:59 +08:00
kate522
770205623d
feat(pay): content cashier, resource orders at VIP price, purchase/download JS loop
...
Wire zibll-style one-shot points/cash cashier for post+_aksrt_pay downloads:
server amount from aksrt_get_user_pay_price, ORDER_PRODUCT_RESOURCE unlock,
frontend need-purchase opens modal, download box purchased/VIP/purchase CTAs.
2026-07-14 11:52:44 +08:00
kate522
02f77b756c
fix(captcha): close human-verification loop end-to-end
...
Rewrite captcha core around aksrt_captcha_config only, require captcha
on login/comment/SMS/phone auth and related gates, wire frontend token
collection, and remove dead dual-source security settings plus slider enqueue.
2026-07-13 19:52:30 +08:00
kate522
3247db7ed1
补充主题静态资源与归档模板
2026-07-03 23:15:11 +08:00