feat: merge promotion and earnings center

This commit is contained in:
2026-08-16 19:54:12 +08:00
parent f70eca09d1
commit 6dbb556d60
11 changed files with 65 additions and 87 deletions
+7 -9
View File
@@ -135,6 +135,8 @@ if (!function_exists('aksrt_get_user_center_tab_url')) {
$tab = sanitize_key($tab);
if ('invite' === $tab) {
$tab = 'promotion';
} elseif ('revenue' === $tab) {
$tab = 'promotion';
}
return aksrt_get_user_center_url($tab);
}
@@ -181,7 +183,6 @@ if (!function_exists('aksrt_capture_user_center_view')) {
'orders' => 'orders',
'auth' => 'auth',
'promotion' => 'promotion',
'revenue' => 'revenue',
'settings' => 'settings',
'header' => 'header',
'sidebar' => 'sidebar',
@@ -206,7 +207,7 @@ if (!function_exists('aksrt_capture_user_center_panel')) {
* Capture a built-in or registered user-center panel body.
*/
function aksrt_capture_user_center_panel(string $tab_key, array $tab, array $context): string {
$built_in_tabs = ['profile', 'level', 'creator', 'posts', 'follow', 'comments', 'favorites', 'credits', 'vip', 'orders', 'auth', 'promotion', 'revenue', 'settings'];
$built_in_tabs = ['profile', 'level', 'creator', 'posts', 'follow', 'comments', 'favorites', 'credits', 'vip', 'orders', 'auth', 'promotion', 'settings'];
if (in_array($tab_key, $built_in_tabs, true)) {
return aksrt_capture_user_center_view($tab_key, $context);
}
@@ -317,6 +318,8 @@ if (!function_exists('aksrt_user_center_resolve_tabs')) {
$active = 'credits';
} elseif ('invite' === $active) {
$active = 'promotion';
} elseif ('revenue' === $active) {
$active = 'promotion';
} elseif ('vip' === $active) {
// Prefer dedicated vip tab when registered; else credits (VIP shop).
$active = in_array('vip', $keys, true) ? 'vip' : 'credits';
@@ -356,6 +359,7 @@ if (!function_exists('aksrt_user_center_runtime_config')) {
'tabAliases' => [
'signin' => 'credits',
'invite' => 'promotion',
'revenue' => 'promotion',
'assets' => 'credits',
// vip → vip when panel exists; SPA may still map missing keys via server resolve.
'vip' => 'vip',
@@ -507,11 +511,7 @@ if (!function_exists('aksrt_get_user_center_render_context')) {
$wallet_balance = (float) ($dashboard['wallet_balance'] ?? 0.0);
$runtime_config = aksrt_user_center_runtime_config($user_id, $tabs['default'], $active_tab, $tabs['urls']);
$runtime_config['avatarUpload'] = aksrt_user_center_avatar_upload_config($allow_avatar_upload);
$revenue_settings = class_exists('\AKSRT\Settings\Settings') ? \AKSRT\Settings\Settings::get_payment_revenue_settings() : [];
$show_revenue_section = !empty($revenue_settings['enabled']) || !empty($affiliate_settings['enabled']);
$revenue_url = isset($tabs['tabs']['revenue'])
? aksrt_get_user_center_tab_url('revenue')
: '';
$render_context = [
'user_center_settings' => $user_center_settings,
@@ -535,7 +535,6 @@ if (!function_exists('aksrt_get_user_center_render_context')) {
'show_avatar_edit' => $allow_avatar_upload,
'notification_unread_count' => function_exists('aksrt_get_user_unread_notification_count') ? aksrt_get_user_unread_notification_count($user_id) : 0,
'messages_url' => $messages_enabled && function_exists('aksrt_get_messages_page_url') ? aksrt_get_messages_page_url() : '',
'revenue_url' => $revenue_url,
'per_page' => 10,
'posts_page' => max(1, isset($_GET['posts_page']) ? (int) $_GET['posts_page'] : 1),
'post_status_filter' => $post_status_filter,
@@ -550,7 +549,6 @@ if (!function_exists('aksrt_get_user_center_render_context')) {
'show_vip' => !empty($vip_settings['enabled']),
'show_credit_tabs' => $show_credit_tabs,
'affiliate_enabled' => $show_credit_tabs && !empty($affiliate_settings['enabled']),
'show_revenue_section' => $show_revenue_section,
'currency_name' => $currency_name,
'credit_balance' => (float) ($dashboard['credit_balance'] ?? 0.0),
'credits_enabled' => $show_credit_tabs,