feat(admin): unify native admin pages on a shared modern UI

Add NativeUi helper + native-ui.css (tokens mirror the SPA Naive UI theme)
and move the pay center, orders, products, coupons, charge cards, income,
withdrawals, tickets, invite codes, VIP, verify, messages and report/ban
pages onto shared header, stat cards, cards, filters, badges and empty
states. Remove inline styles and dead helpers; split PayChargeCards into
sibling traits to stay under the file size limit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
kate522andClaude Fable 5 committed 2026-10-30 15:05:38 +08:00
1 parent aa692f3c9f
commit 18951b01d6
29 files changed
+2503 -1593

No files matched your search

+12 -2
View File
@@ -32,6 +32,7 @@ class UsersMenus {
return;
}
NativeUi::boot();
add_action('admin_menu', [$this, 'register_menus']);
add_action('admin_notices', [$this, 'pending_notices']);
add_action('admin_post_aksrt_users_send_message', [$this, 'handle_send_message']);
@@ -44,6 +45,7 @@ class UsersMenus {
add_action('admin_post_aksrt_ticket_update', [$this, 'handle_ticket_update']);
add_action('admin_enqueue_scripts', [$this, 'enqueue_ticket_assets']);
add_action('admin_enqueue_scripts', [$this, 'enqueue_message_assets']);
add_action('admin_enqueue_scripts', [$this, 'enqueue_invite_assets']);
}
public function register_menus(): void {
@@ -223,14 +225,22 @@ class UsersMenus {
public function render_ban_page(): void {
$this->ensure_cap();
echo '<div class="wrap"><h2>' . esc_html__('用户禁封申诉及用户举报管理', 'aksrt') . '</h2>';
NativeUi::page_open('aksrt-native-ban');
NativeUi::header(
__('用户禁封申诉及用户举报管理', 'aksrt'),
__('处理用户举报与禁封申诉工单。禁封 / 解封操作在前台封禁弹窗完成。', 'aksrt'),
'dashicons-shield'
);
$this->flash();
// 与参考主题一致:后台仅承载「申诉&举报」工单处理;禁封/解封操作
// 全部在前台完成(用户主页封面 / 评论区 / 文章作者栏三点菜单 →
// 封禁弹窗,REST /user-ban/modal + /user-ban/set)。
// render_tickets_tab() 自带筛选控件 + 表格 + 分页,直接交给 .aksrt-native
// 作用域下的共享样式(.subsubsub / .widefat / .button / .tablenav)接管。
$this->render_tickets_tab();
echo '</div>';
NativeUi::page_close();
}