diff --git a/src/Admin/Native/PayOrders.php b/src/Admin/Native/PayOrders.php index 438acfd3..8e2246bd 100644 --- a/src/Admin/Native/PayOrders.php +++ b/src/Admin/Native/PayOrders.php @@ -298,6 +298,17 @@ class PayOrders { return; } + $policy = \AKSRT\Settings\PaymentRuntime::get_after_sale_settings(); + $policy_bits = []; + $policy_bits[] = __('售后功能', 'aksrt') . ':' . ($policy['enabled'] ? __('开启', 'aksrt') : __('关闭', 'aksrt')); + $limit_days = (int) ($policy['time_limit'] ?? 0); + $policy_bits[] = __('申请售后时效', 'aksrt') . ':' . ($limit_days > 0 ? sprintf(__('%d 天', 'aksrt'), $limit_days) : __('不限制', 'aksrt')); + $reason_names = array_column((array) ($policy['reasons'] ?? []), 'name'); + if ($reason_names) $policy_bits[] = __('预置原因', 'aksrt') . ':' . implode('、', $reason_names); + $material_names = array_values(array_filter(array_map('trim', (array) ($policy['materials'] ?? [])))); + if ($material_names) $policy_bits[] = __('申请所需材料', 'aksrt') . ':' . implode('、', $material_names); + echo '
' . esc_html(implode(' ', $policy_bits)) . '
'; + $this->render_after_sales_page(); $this->render_footer(); } @@ -390,8 +401,8 @@ class PayOrders { foreach ([\AKSRT\Payment\AfterSaleService::STATUS_PENDING => '待审核', \AKSRT\Payment\AfterSaleService::STATUS_PROCESSING => '处理中', \AKSRT\Payment\AfterSaleService::STATUS_APPROVED => '已通过', \AKSRT\Payment\AfterSaleService::STATUS_REJECTED => '已拒绝', \AKSRT\Payment\AfterSaleService::STATUS_CANCELLED => '已取消', \AKSRT\Payment\AfterSaleService::STATUS_COMPLETED => '已完成'] as $key => $label) echo ''; echo ' '; submit_button(__('筛选', 'aksrt'), 'secondary', '', false); - echo '| ID | 订单号 | 用户 | 原因 | 退款金额 | 状态 | 操作 / 处理记录 | ||
|---|---|---|---|---|---|---|---|---|
| ' . esc_html__('暂无售后申请', 'aksrt') . ' | ||||||||
| ID | 订单号 | 用户 | 原因 | 申请资料 | 申请说明 | 退款金额 | 状态 | 操作 / 处理记录 |
|---|---|---|---|---|---|---|---|---|
| ' . esc_html__('暂无售后申请', 'aksrt') . ' | ||||||||
| ' . esc_html((string) $id) . ' ' . esc_html((string) ($item['created_at'] ?? '')) . ' | ' . esc_html($number) . '' . esc_html($type_label) . ($order ? ' · ' . esc_html(\AKSRT\Payment\UserOrders::get_instance()->decorate_order_view($order, false)['product_name'] ?? '') : '') . ' | ' . esc_html($user ? $user->display_name . ' (#' . $uid . ')' : '#' . $uid) . ' | ' . esc_html((string) $item['reason']) . ' | ' . esc_html($refund_amount) . ' | ' . esc_html($status_labels[(string) $item['status']] ?? (string) $item['status']) . ' | ';
+ $apply_form = is_array($item['apply_form'] ?? null) ? $item['apply_form'] : null;
+ if ($apply_form) {
+ $reason_cell = esc_html((string) ($apply_form['reason_label'] ?? ''));
+ $material_lines = [];
+ foreach ((array) ($apply_form['materials'] ?? []) as $m) {
+ $ml = trim((string) ($m['label'] ?? '')); $mv = trim((string) ($m['value'] ?? ''));
+ if ($ml === '' && $mv === '') continue;
+ $material_lines[] = esc_html($ml !== '' ? $ml . ':' . $mv : $mv);
+ }
+ $materials_cell = $material_lines ? implode(' ', $material_lines) : '—'; + $desc_text = trim((string) ($apply_form['description'] ?? '')); + $desc_cell = $desc_text !== '' ? nl2br(esc_html($desc_text)) : '—'; + } else { + // 老数据:融合串原样展示在原因列 + $reason_cell = nl2br(esc_html((string) $item['reason'])); + $materials_cell = '—'; + $desc_cell = '—'; + } + echo ' | ||
| ' . esc_html((string) $id) . ' ' . esc_html((string) ($item['created_at'] ?? '')) . ' | ' . esc_html($number) . '' . esc_html($type_label) . ($order ? ' · ' . esc_html(\AKSRT\Payment\UserOrders::get_instance()->decorate_order_view($order, false)['product_name'] ?? '') : '') . ' | ' . esc_html($user ? $user->display_name . ' (#' . $uid . ')' : '#' . $uid) . ' | ' . $reason_cell . ' | ' . $materials_cell . ' | ' . $desc_cell . ' | ' . esc_html($refund_amount) . ' | ' . esc_html($status_labels[(string) $item['status']] ?? (string) $item['status']) . ' | '; if ((string) $item['status'] === 'pending') foreach (['approve' => '通过', 'reject' => '拒绝'] as $decision => $label) { echo ''; } |