kate522 and Claude Fable 5
3595ccbb44
feat(widgets): phase 3 align post widgets 1:1 with zibll fields
...
Align the 7 post/card widget business fields with the Zibll
CSF widget definitions in widget-posts.php:
- WidgetMainPosts/TabPostsWidget/WidgetOnelinePosts: add Zibll
`order` (asc/desc) to build_query_args, form, update, REST
payload and query strings; fix load_mode reading $instance in
query_payload/widget().
- HotPostsWidget: add `target_blank` (form+update+REST+render
href target), wire into query_payload base_qs.
- WidgetTermCards: expand range caps to match Zibll spinners —
pc_row/m_row 1..12, height_scale 20..300, mask_opacity 0..90
(form+update+render+REST).
- WidgetTermAggregation: add `order` (asc/desc) + `favorite`/
`rand` orderby, expand count 1..20, fix `like` meta key to
`_aksrt_like_count` (form+update+render+REST).
- WidgetAjax: propagate target_blank (hot-posts), order + caps
(term-cards/term-aggregation) through REST instances.
- Fix WidgetMainPosts query_payload/widget() using $new_instance
(undefined) instead of $instance for load_mode.
AKSRT pay_type (reading/download/gallery/video/vip/any) is the
semantic equivalent of Zibll zibpay_type (1/2/5/6).
Acceptance: php -l clean on all 7 files; audit-admin-contracts
exit 0; all files <=487 lines. Phase 3 done-when marked.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-30 21:07:38 +08:00
Claude
d975ff4ce6
feat(phase2): shared common-form layer + CommonWidgetFields trait for all widgets
...
- Extract Zibll CSF_Widget::params() common-field parity into
inc/modules/widget-common.php (required by widgets-register.php to keep
both files <1000 lines): subtitle, title_style(simple/big), title_highlight
+color, title_link x3, title_link_style colors, sidebar_affix, show_type
(all/only_pc/only_sm), show_id_type(show/hide), show_ids, animation_in,
animation_repeat, layout_pin_pc/m, layout_bg(white/dark). Adds
normalize_link/normalize_bg helpers, affix_attrs, common_wrapper_attr,
render_title, animation_class. Back-compat normalizes legacy tokens
(in_affix->sidebar_affix, pc/only_pc, include/exclude->show/hide).
- Add src/AKSRT/Widgets/Traits/CommonWidgetFields.php trait
(render_common_form_section + update_common_fields).
- Wire all 57 widgets to use the trait; migrate the 16 hand-rolled in_affix
implementations to shared sidebar_affix (fixes 6 latent bugs where
in_affix was never persisted). SearchWidget intentionally skips the shared
form section (its business show_type collides) but adopts the affix helper.
- widget_display_callback parity verified via tmp assertion script.
Refs .specs/plans/zibll-widgets-1to1.md Phase 2 (US1/US5)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-30 20:42:46 +08:00
kate522
d4946ee554
fix(user): close level parity gaps
2026-07-30 10:21:48 +08:00
kate522
a57b44bd61
fix(user): serialize level experience awards
2026-07-30 09:44:32 +08:00
kate522
20c19dfe31
feat(user): complete growth level chain
2026-07-30 09:38:45 +08:00
kate522
e94437ef60
feat(user): add local avatar management flow
2026-07-29 13:35:17 +08:00
kate522
7dbbb2cdda
fix(identity): show certification in user admin
2026-07-29 12:46:44 +08:00
kate522
2dfaa10798
fix(identity): complete native certification review flow
2026-07-29 12:25:58 +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
d3bf75fbea
fix(user-center): connect certification workflow
2026-07-28 14:17:18 +08:00
kate522
a7f3caec59
feat(user-center): redesign sidebar and wallet tips
2026-07-28 13:41:00 +08:00
kate522
e47ee1b029
feat(user-center): deepen zibll parity and profile media
2026-07-28 12:22:52 +08:00
kate522
bcebd37807
fix(homepage): unify runtime rendering contract
2026-07-28 02:54:18 +08:00
kate522
59f5d5d98a
fix(ip-geo): harden full-chain IP geolocation reliability
...
Capture real client IPs behind CDN, improve provider fallbacks and
negative cache, fix admin credential dependsOn for polling mode, and
map country labels to ISO codes for moderation GeoIP blocks.
2026-07-27 15:39:16 +08:00
kate522
ad40d9a7ca
fix(orders): wire detail progress timeline and two-step cancel
...
Order progress was stuck on "订单创建" because timeline only read sparse
timestamp columns and status transitions didn't always stamp them.
Drive timeline from current status + related records, backfill lifecycle
timestamps on update_status, and replace window.confirm cancel with a
关闭订单 → 确认取消 button step in the detail modal.
2026-07-27 15:15:35 +08:00
kate522
a1e35a4499
feat(orders): order detail modal, list actions, use configured prefix
...
Wire admin payment_order_prefix into order number generation (with 32-char
cap for gateways), make 查看 open a full order-detail modal with
status-aware footer actions, keep type badge top-left only, and right-align
unpaid list actions with countdown on the left.
2026-07-27 12:39:21 +08:00
kate522 and Claude Fable 5
abc3f1565f
fix(payment): reject duplicate provider transactions
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-27 11:31:39 +08:00
kate522 and Claude Fable 5
089421cd3e
fix(payment): unify and harden payment attempts
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-27 11:29:57 +08:00
kate522 and Claude Fable 5
53933988bf
fix(payment): resolve provider out_trade_no on Alipay refund query
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-26 13:29:47 +08:00
kate522 and Claude Fable 5
ed55d302e9
fix(payment): re-pay with fresh provider out_trade_no
...
WeChat/Alipay/Epay reject reusing the same merchant order number when
params change. Allocate attempt-suffixed out_trade_no on resume pay,
map callbacks back to the local order, and best-effort close prior trades.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-26 13:28:45 +08:00
kate522 and Claude Fable 5
723dd180e4
feat(payment): tighten gateways and implement Epay
...
Keep only balance, Alipay, WeChat, PayPal, Stripe, Epay, and card-pass
channels; remove placeholder aggregators. Add dual-channel Epay gateway
with MD5 notify/return, register cashier methods, and gate card-pass
redeem behind the payment channel switch.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-26 12:59:28 +08:00
kate522
53ff99f343
fix(payment): harden payment and refund chains
2026-07-26 02:29:46 +08:00
kate522
a8d99b200b
refactor(payment): migrate SDK to yansongda pay
2026-07-26 00:09:38 +08:00
kate522
06d4844c8e
fix(ip-geo): fallback free lookup when Amap key platform mismatches
2026-07-25 15:46:36 +08:00
kate522
62478a02fd
fix(ip-geo): real pconline + amap sig/errors; clearer admin test failures
2026-07-25 15:31:38 +08:00
kate522
3bb7fb0ba6
refactor(ip-geo): drop dual-read gates; keep single meta and four surfaces
...
Canonical keys only (ip_geo_display defaults to all four, aksrt_user_addr /
aksrt_comment_addr only). Self-view still resolves current IP on read.
2026-07-25 15:14:29 +08:00
kate522
6e71008d00
fix(auth): logout without /logout rewrite (avoid Apache 404)
2026-07-25 15:09:58 +08:00
kate522
ac7ff8d4f2
feat(ip-geo): full-chain IP 归属地 on comments, user home, center, post
2026-07-25 14:39:47 +08:00
kate522
9277674da0
fix(orders): restore frontend pay REST and harden order-center client
...
Add AKSRT\Payment\OrderCenterRest so /shop/frontend/orders/{n}/pay|cancel
always register on rest_api_init; widen order_number route charset; make
order-center.js use credentials, encodeURIComponent, and clearer 404 errors.
2026-07-25 14:12:40 +08:00
kate522
354a1072ef
feat(orders): embed My Orders inside user center (zibll-style)
...
Register UC panel tab=orders with full order list/actions UI; route
aksrt_get_orders_page_url and /orders template to profile?tab=orders;
enqueue order assets when the UC orders tab is active.
2026-07-25 13:54:08 +08:00
kate522
a8760b976a
fix(orders): enqueue cart/revenue assets on virtual routes
2026-07-25 13:41:21 +08:00
kate522
59901bdc26
fix(orders): route /orders without WP page (404)
...
Register commerce rewrite aliases and special-template bootstrap so
/orders loads page-orders even when no page is assigned; flush rules.
2026-07-25 13:40:56 +08:00
kate522
3baa8573c9
feat(orders): full-chain My Orders for all product types
...
Unify front-end order center across shop, content, VIP, recharge,
points, and plate-follow with type filters, stats, and type-aware
cards; keep shop-only fulfillment actions; ensure 权益与消费 entry URL.
2026-07-25 13:33:43 +08:00
kate522
daba099755
fix(payment): align plate-follow cash preview with wallet balance
...
Use cash wallet for plate follow cashiers and stop stubbing methods when Gateway is missing.
2026-07-25 13:13:56 +08:00
kate522
6db4da32c6
feat(admin): collapsible gateway credential forms on payment page
...
Hide channel config cards until enabled; open expanded on enable and allow manual collapse via group header.
2026-07-25 13:08:37 +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
ab3d361d46
fix(admin): accept multi-value 发布类型 on header-nav save
...
header_newposts_types is multi-select but PHP schema used type=select,
so validate() rejected arrays with 422. Use checkbox and allow
select+multiple arrays in SchemaProvider.
2026-07-25 11:13:52 +08:00
kate522
a0862248b2
fix(auth): expose aksrtData.apiUrl alias for REST root
...
Mirror restUrl so legacy modal-auth/follow/report readers get a
plain-permalink-safe endpoint without hardcoding /wp-json.
2026-07-25 11:03:04 +08:00
kate522
a9aba6bdd1
fix(nav): win cascade for CTA and icon baseline
...
Scope multi-type newadd wrapper rules so they cannot collapse single CTA links; re-enqueue nav.css after header-menu-buttons for final zibll alignment.
2026-07-24 12:44:55 +08:00
kate522
879e48a37a
fix(nav): hard-fix top bar icon/text offset vs zibll
...
Cache-bust core buttons CSS, inline critical alignment into nav.css, and center FA icons in toggle/btn/CTA chips so navbar text and icons stop drifting.
2026-07-24 12:14:53 +08:00
kate522
9aa0bd0755
fix(header): cache-bust frontend CSS modules via filemtime
...
header-components used fixed AKSRT_VERSION so card-gap fixes never reached browsers; inline gap rules and filemtime enqueue.
2026-07-24 11:48:25 +08:00
kate522
e45bfc6eec
fix(header): restore gutters-5 gaps on homepage icon cards
...
Homepage never loaded zibll-utilities (single-post only), so .gutters-5 padding was missing and cards stuck together while other pages looked correct.
2026-07-24 11:42:13 +08:00
kate522
96bd9d949d
fix(header): full zibll 1:1 for top multifunc search/cards/admin
...
Wire hero search through aksrt_get_search_box, device-gated cards/blur (zib_m_pc_is_show), expanded admin schema, and keyword/type UI styles matching zibll header-slider.
2026-07-24 10:43:29 +08:00
kate522
0d9db942f8
feat(nav): close P0/P1 parity gaps (nav style, history, plate, admin build)
...
Wire header_nav_style transparent/blur, login history sync, plate publish
type, clean dead search CSS, rebuild admin SPA locally (build gitignored).
2026-07-22 17:38:48 +08:00
kate522
1d1fef50af
feat(nav): deep 1:1 zibll search-box + navbar-search + newposts unify
...
Port aksrt_get_search_box/posts for menu_search and layout 1/3 slide;
unify publish switch; expand user-box admin row; CSS/JS remote-box parity.
2026-07-22 17:06:24 +08:00
kate522
159a12c481
feat(nav): deep-align menu_search panel, pill radius, senior media
...
- Layout-2 remote-box AJAX panel (history/hot/posts) via aksrt_menu_search
- Live suggestions for post/topic/product; local history for guests
- Publish radius switch (zibll bool pill) mapped to CSS radius class
- Senior menu editor: WP media library image picker
- Active menu underline + panel CSS; acceptance/contract updates
2026-07-22 12:51:56 +08:00
kate522
2a11a889c3
feat(nav): finish remaining parity gaps (image_select, AJAX search, senior UI)
...
- Layout image_select previews (zibll PNGs under assets/images/header-layout)
- Localize aksrtAdminData.themeUri for admin SPA asset URLs
- Layout-2 inline search AJAX suggestions via aksrt_search_suggestions
- Appearance→Menus visual senior submenu editor (cards/columns)
- Acceptance checklist + automated source contract report
2026-07-22 12:04:44 +08:00
kate522
e3848ddf8c
feat(nav): paint header theme colors via InlineStyleBuilder
...
Apply SPA header_theme_* as --header-bg/--header-color on .header when
header_theme_custom is enabled (zibll header_theme_custom parity).
2026-07-22 11:42:13 +08:00
kate522
fc50e57bc9
feat(nav): complete remaining zibll parity (search, i18n, senior menus, CSS)
...
- Remove obsolete dual-path nav CSS; add utilities + language dropdown styles
- Wire header/mobile translate switcher from i18n config
- Layout-2 inline search hot keywords panel; nav_folding on resize
- NavMenuOptions JSON editors for graphic_card / multi_column_links
- Section-navs zibll posts-nav-lists; page-navs enqueue; mobile article TOC box
- SPA/PHP user-card publish type; rebuild admin assets
2026-07-22 11:40:17 +08:00