diff --git a/inc/helpers/user-center-renderers/credits-balance.php b/inc/helpers/user-center-renderers/credits-balance.php
new file mode 100644
index 00000000..3bdf8561
--- /dev/null
+++ b/inc/helpers/user-center-renderers/credits-balance.php
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/inc/helpers/user-center-renderers/credits-signin.php b/inc/helpers/user-center-renderers/credits-signin.php
new file mode 100644
index 00000000..9ea0576d
--- /dev/null
+++ b/inc/helpers/user-center-renderers/credits-signin.php
@@ -0,0 +1,43 @@
+
+
+
+
+ get_recent_signins($user_id, 30);
+ $signin_dates = array_filter(array_map(static function ($entry) {
+ return $entry['signin_date'] ?? '';
+ }, $signin_log));
+}
+
+if (empty($signin_dates)) {
+ return;
+}
+?>
+
diff --git a/inc/helpers/user-center-renderers/credits-transactions.php b/inc/helpers/user-center-renderers/credits-transactions.php
new file mode 100644
index 00000000..8b657423
--- /dev/null
+++ b/inc/helpers/user-center-renderers/credits-transactions.php
@@ -0,0 +1,76 @@
+
+
+
+ $user_id, 'page' => $credits_page, 'per_page' => 10]);
+ } else {
+ $log = ['items' => [], 'total' => 0];
+ }
+ if (!empty($log['items'])) :
+ ?>
+
+ = 0 ? 'is-positive' : 'is-negative';
+ ?>
+
+
+
+
+
+
+
+ 0 ? '+' : '') . $delta); ?>
+
+
+
+
+
+
+
+
+ 1) {
+ aksrt_render_profile_pagination($total_pages, $credits_page, 'credits_page');
+ }
+ ?>
+
+
+
+
diff --git a/inc/helpers/user-center-renderers/credits-vip.php b/inc/helpers/user-center-renderers/credits-vip.php
new file mode 100644
index 00000000..53dc27c1
--- /dev/null
+++ b/inc/helpers/user-center-renderers/credits-vip.php
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/inc/helpers/user-center-renderers/profile-credits.php b/inc/helpers/user-center-renderers/profile-credits.php
index 048a14a7..13fe5f36 100644
--- a/inc/helpers/user-center-renderers/profile-credits.php
+++ b/inc/helpers/user-center-renderers/profile-credits.php
@@ -1,6 +1,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- get_recent_signins($user_id, 30);
- $signin_dates = array_map(function ($entry) {
- return $entry['signin_date'] ?? '';
- }, $signin_log);
- $signin_dates = array_filter($signin_dates);
- }
- ?>
-
-
-
-
-
-
-
- $user_id, 'page' => $credits_page, 'per_page' => 10 ] );
- } else {
- $log = [ 'items' => [], 'total' => 0 ];
- }
- if ( ! empty( $log['items'] ) ) :
- ?>
-
- = 0 ? 'is-positive' : 'is-negative';
- ?>
-
-
-
-
-
-
-
- 0 ? '+' : '' ) . $delta ); ?>
-
-
-
-
-
-
-
-
- 1 ) {
- aksrt_render_profile_pagination( $total_pages, $credits_page, 'credits_page' );
- }
- ?>
-
-
-
-
+$dir = __DIR__;
+require $dir . '/credits-balance.php';
+require $dir . '/credits-vip.php';
+require $dir . '/credits-signin.php';
+require $dir . '/credits-transactions.php';
diff --git a/inc/helpers/user-center-renderers/profile-settings.php b/inc/helpers/user-center-renderers/profile-settings.php
index dc6e74a6..2724276a 100644
--- a/inc/helpers/user-center-renderers/profile-settings.php
+++ b/inc/helpers/user-center-renderers/profile-settings.php
@@ -1,6 +1,6 @@
-
- get_frontend_bindings_data($user_id);
- $user_email = $target_user->user_email ?: '';
- $binding_name_map = [
- 'github' => 'GitHub',
- 'gitee' => 'Gitee',
- 'qq' => 'QQ',
- 'google' => 'Google',
- ];
- $binding_rows = [];
- foreach ( (array) ( $oauth_data['bindings'] ?? [] ) as $binding ) {
- $key = $binding['key'] ?? '';
- if ( ! $key ) continue;
- $binding_rows[ $key ] = [
- 'key' => $key,
- 'name' => $binding_name_map[ $key ] ?? ( $binding['name'] ?? ucfirst( $key ) ),
- 'icon' => $binding['icon'] ?? '',
- 'is_bound' => true,
- 'url' => '',
- ];
- }
- foreach ( (array) ( $oauth_data['available'] ?? [] ) as $binding ) {
- $key = $binding['key'] ?? '';
- if ( ! $key ) continue;
- $binding_rows[ $key ] = [
- 'key' => $key,
- 'name' => $binding_name_map[ $key ] ?? ( $binding['name'] ?? ucfirst( $key ) ),
- 'icon' => $binding['icon'] ?? '',
- 'is_bound' => false,
- 'url' => $binding['url'] ?? '',
- ];
- }
- ?>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 0
-
-
-
-
- 0
-
-
-
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+$dir = __DIR__;
+require $dir . '/settings-bindings.php';
+require $dir . '/settings-security.php';
+require $dir . '/settings-invite.php';
+require $dir . '/settings-runtime-fields.php';
diff --git a/inc/helpers/user-center-renderers/settings-bindings.php b/inc/helpers/user-center-renderers/settings-bindings.php
new file mode 100644
index 00000000..a23209b6
--- /dev/null
+++ b/inc/helpers/user-center-renderers/settings-bindings.php
@@ -0,0 +1,87 @@
+get_frontend_bindings_data($user_id) : ['bindings' => [], 'available' => []];
+$binding_name_map = [
+ 'github' => 'GitHub',
+ 'gitee' => 'Gitee',
+ 'qq' => 'QQ',
+ 'google' => 'Google',
+];
+$binding_rows = [];
+foreach ((array) ($oauth_data['bindings'] ?? []) as $binding) {
+ $key = $binding['key'] ?? '';
+ if (!$key) {
+ continue;
+ }
+ $binding_rows[$key] = [
+ 'key' => $key,
+ 'name' => $binding_name_map[$key] ?? ($binding['name'] ?? ucfirst($key)),
+ 'icon' => $binding['icon'] ?? '',
+ 'is_bound' => true,
+ 'url' => '',
+ ];
+}
+foreach ((array) ($oauth_data['available'] ?? []) as $binding) {
+ $key = $binding['key'] ?? '';
+ if (!$key) {
+ continue;
+ }
+ $binding_rows[$key] = [
+ 'key' => $key,
+ 'name' => $binding_name_map[$key] ?? ($binding['name'] ?? ucfirst($key)),
+ 'icon' => $binding['icon'] ?? '',
+ 'is_bound' => false,
+ 'url' => $binding['url'] ?? '',
+ ];
+}
+?>
+
diff --git a/inc/helpers/user-center-renderers/settings-invite.php b/inc/helpers/user-center-renderers/settings-invite.php
new file mode 100644
index 00000000..96c6cf68
--- /dev/null
+++ b/inc/helpers/user-center-renderers/settings-invite.php
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+
+ 0
+
+
+
+
+
+
diff --git a/inc/helpers/user-center-renderers/settings-runtime-fields.php b/inc/helpers/user-center-renderers/settings-runtime-fields.php
new file mode 100644
index 00000000..f3fe3636
--- /dev/null
+++ b/inc/helpers/user-center-renderers/settings-runtime-fields.php
@@ -0,0 +1,21 @@
+user_email
+ : (string) ($user_email ?? '');
+?>
+
+
+
+
+
+
diff --git a/inc/helpers/user-center-renderers/settings-security.php b/inc/helpers/user-center-renderers/settings-security.php
new file mode 100644
index 00000000..21609bb6
--- /dev/null
+++ b/inc/helpers/user-center-renderers/settings-security.php
@@ -0,0 +1,41 @@
+
+
diff --git a/templates/parts/user-center/README.md b/templates/parts/user-center/README.md
index 1bdb256c..9d6d702b 100644
--- a/templates/parts/user-center/README.md
+++ b/templates/parts/user-center/README.md
@@ -7,8 +7,12 @@
- aksrt_user_center_resolve_tabs()
- aksrt_capture_user_center_view() (profile → form 映射)
- 挂载点:header / sidebar / mobile-tabs / panel / account-modals / runtime-config
-- 渲染器:inc/helpers/user-center-renderers/profile-*.php
- - profile 面板内容文件为 profile-form.php
+- 渲染器:inc/helpers/user-center-renderers/
+ - profile-form / posts / comments / favorites / header / sidebar / account-modals
+ - profile-credits.php 编排:
+ credits-balance / credits-vip / credits-signin / credits-transactions
+ - profile-settings.php 编排:
+ settings-bindings / settings-security / settings-invite / settings-runtime-fields
样式归属:
- assets/css/routes/user-center.css