Files
wordpress-theme-aksrt/docs/zibll-gap-matrix.md
T
kate522 d1697c19d9 feat(admin): coupon field parity/batch and charge-card UX polish
Native coupons expose per-user limit, max discount, batch generate, enable;
charge cards support expires_at, code dump after batch, search and CN labels.
2026-07-15 02:54:54 +08:00

108 lines
5.5 KiB
Markdown

# zibll ↔ AKSRT gap matrix (admin ops entry)
Three-way mapping: **zibll current → AKSRT before migration → AKSRT target**.
Focus: admin **entry & page shape**. Runtime field parity is Phase 5+.
---
## Shop
| zibll | AKSRT before | AKSRT target | Data / service |
|-------|--------------|--------------|----------------|
| CPT `shop_product` pos 35, `dashicons-store`, super-admin `show_ui` | `aksrt_product` `show_ui=true`, **`show_in_menu=false`** | Native menu pos 35, store icon; gate on `shop_s` | CPT |
| Tax `shop_cat` | `aksrt_product_cat` show_ui false | show_ui + admin column under product | taxonomy |
| Tax `shop_tag` | `aksrt_product_tag` show_ui false | show_ui under product | taxonomy |
| Tax `shop_discount` | `shop_discount` show_ui false | show_ui under product | `AKSRT_Shop_Term_Meta` |
| Product list columns | Trait exists, wired in `functions.php` | Keep/enhance on native list | admin columns trait |
| Product edit meta | SPA `ShopProducts` + REST | Native meta box (Phase 1b) | product ops / post meta |
| Orders | SPA `ShopOrders` | `admin.php?page=aksrt_orders` | `AKSRT_Order` |
| Shipping | SPA `ShopShipping` | `aksrt_shipping` | `AKSRT_Shipping` |
| After-sale | SPA `ShopAfterSale` | `aksrt_after_sale` | `AKSRT_After_Sale` |
| Coupons | SPA `ShopCoupons` / zibpay coupon page | `aksrt_coupons` | `AKSRT_Coupon` |
| Shop CSF config | SPA shop schema | **Keep SPA schema** | `AKSRT_Settings::get_shop_settings()` |
---
## Forum / community
| zibll | AKSRT before | AKSRT target | Data / service |
|-------|--------------|--------------|----------------|
| CPT `plate` pos 40, forums icon | `aksrt_forum_plate` **show_in_menu false** | show_in_menu true, pos 40, `dashicons-buddicons-forums` | CPT |
| Tax `plate_cat` | `aksrt_plate_cat` | show_ui under plate | taxonomy |
| CPT `forum_post` pos 40, topics icon | `aksrt_forum_topic` default menu, comments icon | pos 40, `dashicons-buddicons-topics`, explicit menu | CPT |
| Tax `forum_topic` / `forum_tag` | `aksrt_forum_topic_cat` / `aksrt_forum_tag` | show_ui under topic | taxonomy |
| Legacy board tax | — | `aksrt_forum_board` keep rewrite bridge, **hide admin UI** (plate is canonical) | taxonomy |
| Boards/topics SPA | `ForumBoards` / `ForumTopics` | Native CPT lists | `AKSRT_Forum` |
| Moderators / applications | SPA | Plate meta box + optional subpage | moderation service |
| BBS CSF config | SPA forum schema | **Keep SPA schema** | `get_forum_settings()` |
---
## Payment / zibpay ops
| zibll page | Purpose | AKSRT before | Target slug | Service |
|------------|---------|--------------|-------------|---------|
| `zibpay_page` | Dashboard | SPA dashboards | `aksrt_pay` | aggregates |
| `zibpay_page#/order` | Orders (new) | SPA ShopOrders | `aksrt_orders` | `AKSRT_Order` |
| `zibpay_order_page` | Orders (legacy) | SPA | same native list | |
| `zibpay_page#/shipping` | Shipping | SPA | `aksrt_shipping` | `AKSRT_Shipping` |
| `zibpay_page#/after-sale` | After-sale | SPA | `aksrt_after_sale` | `AKSRT_After_Sale` |
| `zibpay_product_page` | Paid-post sales report | partial | optional later `aksrt_pay_products` | content pay |
| `zibpay_income_page` | Creator income | `PaymentRevenue` | `aksrt_income` | `AKSRT_Revenue` |
| `zibpay_rebate_page` | Rebate | `PaymentRebate` | `aksrt_rebate` | `AKSRT_Rebate` |
| `zibpay_withdraw` | Withdraw | `ShopWithdrawals` | `aksrt_withdraw` | `AKSRT_Withdrawal` |
| `zibpay_charge_card_page` | Charge cards | `PaymentChargeCard` | `aksrt_charge_cards` | `AKSRT_Charge_Card` |
| `zibpay_coupon_page` | Coupons | `ShopCoupons` | `aksrt_coupons` | `AKSRT_Coupon` |
| CSF pay sections | Gateways/VIP/… | SPA payment schema | **Keep SPA** | settings |
Note: zibll「商品管理」`zibpay_product_page` is **paid article sales**, not the physical `shop_product` CPT list.
---
## User governance
| zibll | slug | AKSRT before | Target |
|-------|------|--------------|--------|
| 消息管理 | `user_messags` under users.php | SPA `UsersMessages` | `users.php?page=aksrt_messages` |
| 邀请码管理 | `invit_code` | SPA `UsersInviteCodes` | `aksrt_invite_codes` |
| 身份认证 | `user_auth` | SPA `UsersVerify` queue | `aksrt_user_auth` |
| 举报&禁封申诉 | `user_ban` | SPA Ban + Report | single `aksrt_user_ban` with tabs |
| Credits column | users list | `AKSRT_User_Credits_Admin` | keep |
| CSF user config | — | SPA users schema | keep |
---
## SPA ops routes to delete (Phase 4)
### shop.js
`shop-products`, `shop-orders`, `shop-after-sale`, `shop-shipping`, `shop-coupons`, `shop-withdrawals`, `shop-dashboard`
### forum.js
`forum-boards`, `forum-topics`, `forum-moderators`, `forum-moderator-applications`, `forum-dashboard`
### payment.js
`payment-charge-card`, `payment-revenue`, `payment-rebate` (ops tables)
### users.js
`users-messages`, `users-invite-codes`, `users-ban`, `users-report` (queues)
---
## Phase status
| Phase | Status |
|-------|--------|
| 0 Docs + matrix | done |
| 1 Native CPT/tax menus | done |
| 2a Pay menu + orders/withdraw/cards | done |
| 2b Shipping/after-sale/coupons/income/rebate | done |
| 3 users.php submenus | done |
| 4 SPA strip | done (ops routes redirect to native) |
| 5+ behavior parity | in progress — shipping list create + order links; after-sale filters/actions; order note/quick actions; coupons field parity + batch/enable; charge-cards expires + code dump + search/labels |
| 5 remaining | product/forum runtime field parity; pending-to-ship board; express timeline; coupon product_scope UI |
## Dual-UI rule
Native write path must work **before** removing the matching SPA ops route. No data migration: same tables/meta; UI only.