进行了一些小修复

This commit is contained in:
2026-08-26 16:32:18 +08:00
parent 992af2119d
commit 2cb78edabb
26 changed files with 2091 additions and 2383 deletions
+15 -28
View File
@@ -23,13 +23,13 @@ trait FrontSubmitPay {
}
// Only touch pay meta when the form sent pay fields.
$has_pay_payload = isset($data['aksrt_pay']) || isset($data['pay_enabled']) || isset($data['aksrtpay_s']) || isset($data['pay_type']);
$has_pay_payload = isset($data['aksrt_pay']) || isset($data['pay_enabled']);
if (!$has_pay_payload) {
return ['success' => true];
}
$raw = is_array($data['aksrt_pay'] ?? null) ? $data['aksrt_pay'] : [];
$enabled = !empty($data['pay_enabled']) || !empty($data['aksrtpay_s']);
$enabled = !empty($data['pay_enabled']);
$existing = function_exists('aksrt_get_pay_meta') ? aksrt_get_pay_meta($post_id) : DomainModel::default_pay_meta();
$meta = is_array($existing) ? $existing : DomainModel::default_pay_meta();
@@ -40,22 +40,15 @@ trait FrontSubmitPay {
return ['success' => true];
}
$pay_modo = sanitize_key((string) ($raw['pay_modo'] ?? $data['pay_modo'] ?? '0'));
$pay_modo = sanitize_key((string) ($raw['pay_modo'] ?? '0'));
$pay_modo = $pay_modo === 'points' ? 'points' : '0';
$pay_type = sanitize_key((string) ($raw['pay_type'] ?? $data['pay_type'] ?? DomainModel::PAY_TYPE_READING));
if ($pay_type === '1' || $pay_type === 'reading' || $pay_type === 'payshow') {
$pay_type = DomainModel::normalize_pay_type((string) ($raw['pay_type'] ?? DomainModel::PAY_TYPE_READING));
if ($pay_type === DomainModel::PAY_TYPE_NO) {
$pay_type = DomainModel::PAY_TYPE_READING;
} elseif ($pay_type === '2' || $pay_type === 'download') {
$pay_type = DomainModel::PAY_TYPE_DOWNLOAD;
} else {
$pay_type = DomainModel::normalize_pay_type($pay_type);
if ($pay_type === DomainModel::PAY_TYPE_NO) {
$pay_type = DomainModel::PAY_TYPE_READING;
}
}
$downloads = $this->normalize_front_downloads($raw['downloads'] ?? $data['pay_download'] ?? [], $user_id);
$downloads = $this->normalize_front_downloads($raw['downloads'] ?? [], $user_id);
if (!empty($downloads) && $this->user_can_cap('new_post_pay_download', $user_id)) {
$pay_type = DomainModel::PAY_TYPE_DOWNLOAD;
$meta['downloads'] = $downloads;
@@ -93,10 +86,10 @@ trait FrontSubmitPay {
if ($vip_manual) {
$vip1 = $vip1_enabled
? $this->parse_front_points($raw['vip1_points'] ?? $raw['vip_1_points'] ?? null)
? $this->parse_front_points($raw['vip1_points'] ?? null)
: 0;
$vip2 = $vip2_enabled
? $this->parse_front_points($raw['vip2_points'] ?? $raw['vip_2_points'] ?? null)
? $this->parse_front_points($raw['vip2_points'] ?? null)
: 0;
if (($vip1_enabled && $vip1 === null) || ($vip2_enabled && $vip2 === null)) {
return ['success' => false, 'message' => __('请设置正确的会员积分价格', 'aksrt')];
@@ -121,7 +114,7 @@ trait FrontSubmitPay {
$meta['vip1_price'] = '0.00';
$meta['vip2_price'] = '0.00';
} else {
$price_minor = $this->parse_front_cash_minor($raw['price'] ?? $raw['pay_price'] ?? $data['pay_price'] ?? null);
$price_minor = $this->parse_front_cash_minor($raw['price'] ?? null);
$min_minor = $this->parse_front_cash_minor($settings['pay_price_min'] ?? '0') ?? 0;
$max_minor = $this->parse_front_cash_minor($settings['pay_price_max'] ?? '0') ?? 0;
if ($price_minor === null) {
@@ -139,10 +132,10 @@ trait FrontSubmitPay {
if ($vip_manual) {
$vip1_minor = $vip1_enabled
? $this->parse_front_cash_minor($raw['vip1_price'] ?? $raw['vip_1_price'] ?? null)
? $this->parse_front_cash_minor($raw['vip1_price'] ?? null)
: 0;
$vip2_minor = $vip2_enabled
? $this->parse_front_cash_minor($raw['vip2_price'] ?? $raw['vip_2_price'] ?? null)
? $this->parse_front_cash_minor($raw['vip2_price'] ?? null)
: 0;
if (($vip1_enabled && $vip1_minor === null) || ($vip2_enabled && $vip2_minor === null)) {
return ['success' => false, 'message' => __('请设置正确的会员价格', 'aksrt')];
@@ -168,13 +161,8 @@ trait FrontSubmitPay {
$meta['vip2_points'] = 0;
}
$pay_limit = (int) ($raw['pay_limit'] ?? $data['pay_limit'] ?? 0);
$pay_limit = (int) ($raw['pay_limit'] ?? 0);
$meta['pay_limit'] = in_array($pay_limit, [0, 1, 2], true) ? $pay_limit : 0;
$meta['require_login'] = !empty($raw['require_login']) || !empty($data['require_login']);
$meta['coupon_s'] = !empty($raw['coupon_s']) || !empty($data['coupon_s']);
if (isset($raw['coupon_desc']) || isset($data['coupon_desc'])) {
$meta['coupon_desc'] = sanitize_textarea_field((string) ($raw['coupon_desc'] ?? $data['coupon_desc'] ?? ''));
}
$this->write_pay_meta($post_id, $meta);
return ['success' => true];
@@ -227,8 +215,7 @@ trait FrontSubmitPay {
if (!is_array($row)) {
continue;
}
// Accept legacy-ish keys + AKSRT keys.
$url = (string) ($row['url'] ?? $row['link'] ?? '');
$url = (string) ($row['url'] ?? '');
$url = esc_url_raw(trim($url));
if ($url === '') {
continue;
@@ -238,10 +225,10 @@ trait FrontSubmitPay {
continue;
}
$out[] = [
'label' => sanitize_text_field((string) ($row['label'] ?? $row['name'] ?? '')),
'label' => sanitize_text_field((string) ($row['label'] ?? '')),
'url' => $url,
'type' => $attachment_id > 0 ? 'direct' : 'external',
'extract_code' => sanitize_text_field((string) ($row['extract_code'] ?? $row['copy_val'] ?? $row['more'] ?? '')),
'extract_code' => sanitize_text_field((string) ($row['extract_code'] ?? '')),
];
}
return DomainModel::sanitize_downloads($out);