feat: redesign promotion earnings cards
This commit is contained in:
@@ -159,8 +159,6 @@ class SchemaPayment {
|
||||
]],
|
||||
['key' => 'text', 'title' => '文案设置', 'fields' => [
|
||||
['key' => 'affiliate_promotion_text', 'label' => '推广说明', 'type' => 'textarea', 'default' => ''],
|
||||
['key' => 'affiliate_earnings_text', 'label' => '收益说明', 'type' => 'textarea', 'default' => ''],
|
||||
['key' => 'affiliate_withdrawal_agreement', 'label' => '提现协议', 'type' => 'textarea', 'default' => ''],
|
||||
['key' => 'affiliate_payout_channels', 'label' => '可用收款渠道', 'type' => 'checkbox', 'options' => [['value' => 'alipay', 'label' => '支付宝收款码'], ['value' => 'wechat', 'label' => '微信收款码']], 'default' => ['alipay', 'wechat']],
|
||||
]],
|
||||
],
|
||||
|
||||
@@ -146,12 +146,6 @@ final class ReferralAttribution {
|
||||
'callback' => [$this, 'rest_me'],
|
||||
'permission_callback' => static fn() => is_user_logged_in(),
|
||||
]);
|
||||
register_rest_route('aksrt/v1', '/promotion/payout-accounts', [
|
||||
'methods' => \WP_REST_Server::EDITABLE,
|
||||
'callback' => [$this, 'rest_save_payout_accounts'],
|
||||
'permission_callback' => static fn() => is_user_logged_in(),
|
||||
'args' => ['accounts' => ['required' => true, 'type' => 'array']],
|
||||
]);
|
||||
}
|
||||
|
||||
public function rest_me(): \WP_REST_Response {
|
||||
@@ -169,29 +163,6 @@ final class ReferralAttribution {
|
||||
], 200);
|
||||
}
|
||||
|
||||
public function rest_save_payout_accounts(\WP_REST_Request $request): \WP_REST_Response|\WP_Error {
|
||||
$accounts = $request->get_param('accounts');
|
||||
if (!is_array($accounts)) {
|
||||
return new \WP_Error('aksrt_payout_accounts', __('收款账户格式无效。', 'aksrt'), ['status' => 400]);
|
||||
}
|
||||
global $wpdb;
|
||||
$table = \AKSRT\Core\DBMigrator::table('payout_account');
|
||||
if ($table === '') {
|
||||
return new \WP_Error('aksrt_payout_unavailable', __('收款账户服务不可用。', 'aksrt'), ['status' => 500]);
|
||||
}
|
||||
$uid = get_current_user_id();
|
||||
$now = current_time('mysql', true);
|
||||
foreach (['alipay', 'wechat'] as $channel) {
|
||||
$value = isset($accounts[$channel]) ? sanitize_text_field((string) $accounts[$channel]) : '';
|
||||
if ($value === '') {
|
||||
$wpdb->update($table, ['status' => 'inactive', 'updated_at' => $now], ['user_id' => $uid, 'channel' => $channel], ['%s', '%s'], ['%d', '%s']);
|
||||
continue;
|
||||
}
|
||||
$wpdb->replace($table, ['user_id' => $uid, 'channel' => $channel, 'attachment_id' => 0, 'account_hash' => hash('sha256', $value), 'status' => 'active', 'created_at' => $now, 'updated_at' => $now], ['%d', '%s', '%d', '%s', '%s', '%s', '%s']);
|
||||
}
|
||||
return new \WP_REST_Response(['success' => true], 200);
|
||||
}
|
||||
|
||||
private function resolve_promoter(string $code): int {
|
||||
$code = sanitize_key($code);
|
||||
if ($code === '') {
|
||||
|
||||
@@ -301,8 +301,6 @@ class PaymentRuntime {
|
||||
'allow_self_purchase' => !empty($settings['affiliate_allow_self_purchase']),
|
||||
'show_stats' => !isset($settings['affiliate_show_stats']) || !empty($settings['affiliate_show_stats']),
|
||||
'promotion_text' => sanitize_textarea_field((string) ($settings['affiliate_promotion_text'] ?? '')),
|
||||
'earnings_text' => sanitize_textarea_field((string) ($settings['affiliate_earnings_text'] ?? '')),
|
||||
'withdrawal_agreement' => sanitize_textarea_field((string) ($settings['affiliate_withdrawal_agreement'] ?? '')),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user