true, 'desc' => '', 'keys' => []]; $ban = class_exists(Restriction::class) ? Restriction::get_instance()->get_active_ban($user_id) : null; if (!$ban && class_exists(Restriction::class)) { $ban = Restriction::get_instance()->get_active_suspend($user_id); } $status = class_exists(BanAppeal::class) ? BanAppeal::get_status($user_id) : ''; $payload = class_exists(BanAppeal::class) ? BanAppeal::get_payload($user_id) : []; // 禁封状态信息(对齐参考主题 zib_get_ban_info_modal:状态/起止时间/原因/说明/申诉权限)。 $ban_status_text = ''; $ban_reason = ''; $ban_desc = ''; $ban_end_text = ''; $no_appeal = get_user_meta($user_id, '_aksrt_no_appeal', true); $no_appeal_desc = is_array($no_appeal) ? (string) ($no_appeal['desc'] ?? '') : ''; if (is_array($ban)) { $ban_status_text = (string) ($ban['type'] ?? '') === Restriction::TYPE_BAN ? __('禁封中(禁止登录)', 'aksrt') : __('小黑屋禁封中', 'aksrt'); $ban_end_text = !empty($ban['expires_at']) ? (string) $ban['expires_at'] : __('永久', 'aksrt'); $raw_reason = (string) ($ban['reason'] ?? ''); $ban_reason = $raw_reason; $desc_marker = "\n" . __('禁封说明:', 'aksrt'); $marker_pos = strpos($raw_reason, $desc_marker); if (false !== $marker_pos) { $ban_reason = substr($raw_reason, 0, $marker_pos); $ban_desc = substr($raw_reason, $marker_pos + strlen($desc_marker)); } } $ban_set_row = static function (string $label, string $value): string { if ($value === '') { return ''; } return '
' . esc_html($label) . '
' . esc_html($value) . '
'; }; ?>