feat(payment): complete creator income center

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-07 10:59:58 +08:00
co-authored by Claude Fable 5
parent 450b9f44b9
commit 9e6ae32fc1
16 changed files with 550 additions and 134 deletions
+18 -1
View File
@@ -68,6 +68,17 @@ class Center {
return new \WP_Error('aksrt_user_center_context', __('用户中心数据加载失败', 'aksrt'), ['status' => 500]);
}
$income_request = [];
if ($tab === 'creator') {
$currency = sanitize_key((string) $request->get_param('income_currency'));
$status = sanitize_key((string) $request->get_param('income_status'));
$income_request = [
'currency' => in_array($currency, ['', 'CNY', 'points'], true) ? $currency : '',
'status' => in_array($status, ['', 'pending', 'settled', 'cancelled', 'reversed', 'pending_recovery'], true) ? $status : '',
'page' => max(1, min(100, (int) $request->get_param('income_page'))),
];
$context['creator_income_request'] = $income_request;
}
$revenue_request = [];
if ($tab === 'revenue') {
$reward_tab = sanitize_key((string) $request->get_param('reward_tab'));
@@ -95,6 +106,7 @@ class Center {
'tab' => $tab,
'html' => $html,
'reward_tab' => $revenue_request['reward_tab'] ?? '',
'creator_income' => $income_request,
'commission_page' => $revenue_request['commission_page'] ?? 1,
'invite_page' => $revenue_request['invite_page'] ?? 1,
],
@@ -210,6 +222,8 @@ class Center {
$revenue_tab_on = class_exists('\AKSRT\Settings\Settings')
&& !empty(\AKSRT\Settings\Settings::get_payment_affiliate_settings()['enabled'])
&& \AKSRT\Settings\Settings::invite_registration_enabled();
$creator_tab_on = class_exists('\AKSRT\Settings\Settings')
&& !empty(\AKSRT\Settings\Settings::get_payment_revenue_settings()['enabled']);
$vip_on = class_exists('\AKSRT\Settings\Settings')
&& !empty(\AKSRT\Settings\Settings::get_payment_vip_settings()['enabled']);
@@ -217,10 +231,13 @@ class Center {
$order = $configured;
// Creator center is a dedicated workspace, separate from the posts archive.
if (!in_array('creator', $order, true)) {
if ($creator_tab_on && !in_array('creator', $order, true)) {
$insert_at = array_search('profile', $order, true);
array_splice($order, $insert_at === false ? 0 : (int) $insert_at + 1, 0, ['creator']);
}
if (!$creator_tab_on) {
$order = array_values(array_filter($order, static fn(string $key): bool => $key !== 'creator'));
}
// Growth level is a dedicated user-center surface, separate from spendable points.
if ($level_on && !in_array('level', $order, true)) {