Commit Graph
445 Commits
Author SHA1 Message Date
kate522andClaude 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
kate522andClaude 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
kate522andClaude Fable 5 7bb429bcb9 fix(user-center): make rebate details full width
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 13:03:30 +08:00
kate522andClaude Fable 5 6897ddca4b fix(user-center): remove rebate detail title setting
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 13:00:50 +08:00
kate522andClaude Fable 5 487a63629c fix(user-center): refresh revenue withdrawal state
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 12:51:01 +08:00
kate522andClaude 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
kate522andClaude 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
kate522 39c92017d9 feat(user-center): merge promotion rewards into revenue 2026-08-05 23:43:16 +08:00
kate522 52ad9fbbd3 feat(user-center): redesign 推广中心 panel + extract promotion.css
Give the standalone promotion tab its own stylesheet and a task-priority
layout (成果概览 → 分享操作 → 奖励说明 → 邀请记录).

- assets/css/routes/user-center/promotion.css: new module owning all
  uc-promotion-* rules; flattens #panel-promotion chrome, adds focus-visible
  on the copy button + link input, and a ≤640px single-column layout with a
  full-width copy button (no horizontal overflow)
- user-center.css: import the new promotion.css
- user-center/revenue.css: drop the now-migrated uc-promotion-* rules (keep
  only the revenue-layout mobile rule)
- profile-invite.php: refresh doc header to describe the section priority
  order; copy button stays a focusable <button>, credits.js keeps text-based
  success/failure feedback via [data-invite-copy-feedback]
2026-08-05 17:26:56 +08:00
kate522 51274fd00a feat(user-center): promote invite into standalone 推广中心 tab
Register a dedicated `promotion` dashboard panel gated by the existing
invite switches (credits + invite reward + invite registration), and move
the invite card out of the revenue tab so 收益中心 is pure earnings/withdrawal.

- src/User/Center.php: register promotion panel; revenue no longer depends
  on invite being on
- inc/helpers/user-center-renderers/profile-promotion.php: new panel body
  hosting the existing [data-aksrt-invite] card
- profile-revenue.php: drop the invite section; aksrt-user-center.php: drop
  unused show_invite_section context, add promotion to built-in tabs + view map
- repoint invite/promotion deep-link aliases from revenue to promotion across
  tab-url builder, tab resolver, runtime tabAliases, urls.php, and the
  revenue-JS enqueue gate
- sidebar-nav.php: add 推广中心 service entry; shell.css: entry icon color;
  sidebar-creator.php: reword revenue card
- UserRuntime.php: allow promotion in configurable tabs
2026-08-05 16:45:47 +08:00
kate522andClaude Fable 5 5375ad6429 perf(modal): unify cancellable frontend modal flows
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 02:04:55 +08:00
kate522andClaude Fable 5 34150f3358 refactor(modal): remove legacy compatibility paths
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 00:06:37 +08:00
kate522andClaude Fable 5 bdfe3a461d fix(modal): route refresh modal through runtime
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 23:28:13 +08:00
kate522andClaude Fable 5 d79b063bf9 feat(modal): add cancellable shared runtime
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 23:24:37 +08:00
kate522andClaude Fable 5 0647c501ba fix(css): remove stale forum page imports
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 22:44:12 +08:00
kate522andClaude Fable 5 b9a84ba063 fix(vip): keep summary surface white
Remove level-specific gradients from the top membership summary while preserving icon accents and purchase cards.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 19:56:45 +08:00
kate522andClaude Fable 5 3283d7de0a style(vip): match summary card to purchase cards
Tone down the top membership summary to the existing VIP card language without changing purchase-card styles or behavior.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 19:50:59 +08:00
kate522andClaude Fable 5 21c3300255 fix(vip): scope redesign to summary card
Restore the existing membership purchase cards and keep the UX refresh limited to the top membership summary.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 19:34:53 +08:00
kate522andClaude Fable 5 b60894a371 design(vip): refresh membership card experience
Introduce state-aware membership hierarchy, token-based styling, responsive level cards, and a non-interactive permanent VIP2 state.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 19:28:57 +08:00
kate522andClaude Fable 5 0551260403 fix(vip): flatten panel and format membership summary
Remove the shared dashboard card around the VIP panel and render membership details as title, level, intro, and expiry rows.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 18:43:54 +08:00
kate522andClaude Fable 5 480a0bb498 refactor(vip): simplify user center membership summary
Remove profile identity chrome from the VIP header, keep the crown watermark, and flatten the summary into one thin card while preserving membership purchase cards.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 18:34:28 +08:00
kate522andClaude Fable 5 54e0ad4026 fix(badges): remove worn medal outline
Remove the shared outline that wrapped worn medal image icons across author and comment identity surfaces.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 18:16:35 +08:00
kate522 ed19937e99 feat(badges): zibll-style badge modal with category grid, detail view, and wear UX 2026-08-04 12:46:44 +08:00
kate522 4849869289 fix(badges): reset border/outline/shadow on worn medal icon
Defensive reset for UC header medal-icon to ensure no wrapping line
from inherited button/link/image styles.
2026-08-04 11:10:36 +08:00
kate522 e991f1a0c6 fix(badges): complete full-chain badge circuit and preset icons
Close the full circuit break in the badge/medal system and replace
empty default icons with preset SVG assets so badges render out of
the box:

- Add aksrt_get_worn_medal_icon() helper that renders the worn medal
  image inline (with settings fallback when the Badges class is
  unavailable).
- Profile header (UC) now shows the worn medal icon beside the name,
  matching zibll's name row order (display_name → VIP → Medal → Level → Verify).
- Add .medal-icon / .aksrt-identity-medal vertical-align rules in UC shell.css.
- Extract SchemaUsers::default_medal_args() and preset 6 badges (rookie,
  checkin-30, writer, popular, annual-star, vip-member) with real icon
  URLs from assets/img/medal/ (medal-1/2/5/9/12/15.svg).
- Vue badge.js: add MEDAL_BASE helper + preset icons matching PHP defaults.
2026-08-04 10:36:50 +08:00
kate522 9fa9a4cbaf feat(users): style VIP sidebar card 2026-08-03 22:11:09 +08:00
kate522 ac714a2839 fix(users): remove revenue panel nesting 2026-08-03 16:29:53 +08:00
kate522 21ea8eac43 feat(users): separate revenue center cards 2026-08-03 16:26:39 +08:00
kate522 49c12b761f feat(users): merge promotion into revenue center 2026-08-03 15:38:17 +08:00
kate522 26d307056e feat(orders): redesign user order center 2026-08-03 12:54:58 +08:00
kate522 43b7cd8091 fix(orders): ensure cards fill full container width
Add explicit grid-template-columns: 1fr and width: 100% to .aksrt-orders-page__list so order cards span the full width of the user center content panel.
2026-08-03 10:52:30 +08:00
kate522 9f429e5a62 fix(orders): stop no-thumbnail order items being squeezed
Order items without a product thumbnail render the title and price into the
3-column grid with the image slot missing, so the title gets crushed into the
64px image column and the price floats far right. Tag such items with a
--no-image modifier that drops the image column (desktop: title fills the row
with price right-aligned; mobile: title full-width, price wraps below).
2026-08-03 09:42:40 +08:00
kate522 e71a5b7585 refactor: drop order quick shortcuts, keep My Orders tile only
Per feedback the 待支付/售后 shortcut row is not wanted. Remove the nested
quick grid, delete the now-orphaned sidebar-orders renderer, and strip its
uc-order-grid CSS. 我的订单 remains a single tile in the 我的服务 grid.
2026-08-03 09:16:29 +08:00
kate522 16fdeceaf7 refactor: move user-center My Orders into My Services section
The standalone order card is folded into the 我的服务 (My Services) sidebar
section: 我的订单 becomes a service-grid tile (all orders), with the
待支付/售后 quick shortcuts rendered beneath it as a compact row. Gated on
the orders dashboard tab being registered so no dead tile appears when the
payment stack is absent.
2026-08-03 09:09:02 +08:00
kate522 1d2505356e feat: remove shop feature (Phase 2)
Delete all shop domain classes, controllers, schema builders, templates,
JS/CSS, admin SPA pages, and shop-only payment classes (Shipping,
AfterSale, Discount). Remove shop-only DB table definitions (product_variant,
after_sale, order_shipping, card_key) from migrator and add their DROP
to uninstall.php. Clean up shared files:

- Remove aksrt_product CPT + taxonomies from Setup.php
- Remove shop rewrite rules/query vars/template redirect from SetupPart2.php
- Remove shop widget areas from SetupPart1.php
- Remove shop enqueues from ScriptsPart1b.php
- Remove sepakerator-aksrt-shop from SetupPart2.php
- Remove get_shop_settings facade (delete ForumShop.php, clean DomainGroups.php)
- Remove ORDER_PRODUCT_SHOP constant from DomainModel.php
- Remove Shop::class fallback branches from UserOrders.php, OrderCenterRest.php
- Remove shipping/after-sale branches from OrderRepositoryAdmin.php, PayMenus.php, PayOrders.php
- Remove shop product widgets from widgets-register.php
- Remove cart page from template-registry.php, routing.php, ScriptsPart2.php
- Remove cart UI from sidebar-nav.php, profile-orders.php, sidebar-orders.php
- Clean up order-center.js (remove rebuy/cartUrl/receipt/after-sale handlers)
- Remove aksrt_get_cart_page_url/product_page/product_edit from transactions.php
- Clean up aksrt_product_cat references in Coupon.php, PayCoupons.php

Shared payment/order/credits/content-pay stack fully retained.
2026-08-02 21:25:52 +08:00
kate522 2bbd7c01a3 feat: remove forum feature (Phase 1) 2026-08-02 20:02:44 +08:00
kate522andClaude Fable 5 63705dfde0 fix: 精简身份认证申请表单
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-01 19:15:01 +08:00
kate522 bd538d7daf fix: 用户/作者卡片外层包裹层透明化改用 !important + :has() 兜底
上一版透明化规则无 !important,在暗色模式(html.dark .zib-widget 权重更高)
与首页/用户中心侧栏(homepage-fixed 后加载的同权重规则)中反被卡片绘制规则
覆盖,导致外层卡片重现。

- 透明化声明全部加 !important,确保胜过所有 .zib-widget 卡片绘制规则
- 新增 .zib-widget:has(.aksrt-user-card/.aksrt-author-card) 兜底,
  无论包裹层类名/嵌套 .is-affix 与否都能命中
2026-08-01 11:04:32 +08:00
kate522 0fd5848884 重新设计用户/作者卡片小工具:消除多层卡片堆叠
- WidgetUserCard/WidgetAuthorCard 内层根节点去掉重复的 zib-widget widget 类
- 用户卡片补 classname=widget_aksrt_user_card 钩子
- widget-batch5.css 新增外层 .zib-widget 包裹层透明化规则(含首页侧栏覆盖)
- 内层 .aksrt-user-card/.aksrt-author-card margin-bottom 归零,间距由外层统一
- 删除 custom-amount.css 重复的 .aksrt-user-card* 段
- 删除 sidebar.css 失效的 .widget-user-card* 死代码
- author-actions.css .user-card.author.zib-widget → .user-card.author
2026-08-01 10:38:54 +08:00
kate522 387b9e1929 fix: 修正后台等级图标与认证提示 2026-07-31 11:36:33 +08:00
kate522 06a03fd9cf fix: 始终展示已认证标识 2026-07-31 11:15:29 +08:00
Claude 98aeee3cc1 fix(phase1): backfill pagination, fix card stacking, unify archive render
- Backfill aksrt_render_pagination() into inc/helpers/aksrt-template-tags.php
  (numbered + load_more/infinite branches, \AKSRT\Settings\Settings facade)
- post-card.css: drop display:block !important from base .posts-item so
  .posts-item.card inline-block 3-col grid wins; scope <posts> block forcing
- archive-resources.php: replace hand-written .posts-row.ajaxpager +
  get_template_part loop with aksrt_render_post_list() + aksrt_render_pagination()

Refs .specs/plans/zibll-widgets-1to1.md Phase 1 (US2/US3/US5)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 19:05:43 +08:00
Claude 4325ce0c1c fix(ui): render user level icon inline beside the name
The level (等级) badge was wrapping to its own line below the username and
rendering at the intrinsic PNG size in most surfaces. Centralize the badge
sizing after zibll's `.img-icon` (height: 1.1em, inline-block) in base.css so
every route gets the same compact inline badge, and keep the name row from
flex-wrapping.

- Add shared `.aksrt-user-level-icon / .aksrt-identity-medal` rule + nowrap name
  rows in base.css (loaded on all routes).
- Header dropdown: append the level icon next to the display name (was a
  separate badges row); constrain the name to ellipsis so the badge never wraps.
- User center profile header & author hero: render the level icon inside the
  <h1> name row; drop the duplicate level chip from the signals row.
- Single article author bar / after-box author card: nowrap the name row and
  size the level icon to 1.2em (was unstyled → intrinsic PNG size).
- Comments: inner <name> nowrap with a name clamp; medal sized to 1em.
- Consolidate the per-route `.aksrt-user-level-icon` duplicates in
  user-center/level.css and profile/layout.css onto the shared rule.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 18:13:41 +08:00
kate522 d4946ee554 fix(user): close level parity gaps 2026-07-30 10:21:48 +08:00
kate522 20c19dfe31 feat(user): complete growth level chain 2026-07-30 09:38:45 +08:00
kate522 eed75d9f15 fix(user): move avatar upload to hover overlay 2026-07-29 14:17:52 +08:00
kate522 815e83bac0 fix(user-center): complete certification and order flows
Fix modal scroll ownership and certification modal styling, store evidence as Media Library attachments, reconcile missed provider callbacks, validate currencies, and complete digital fulfillment only after durable entitlement delivery.
2026-07-29 10:29:59 +08:00
kate522 0a04c3e4cc fix(user-center): embed official certification panel 2026-07-28 15:22:09 +08:00
kate522 a7f3caec59 feat(user-center): redesign sidebar and wallet tips 2026-07-28 13:41:00 +08:00