进行了一些小优化

This commit is contained in:
2026-08-24 17:40:35 +08:00
parent 9d3bfb91cd
commit 6674bded6a
6 changed files with 4 additions and 41 deletions
-37
View File
@@ -21,9 +21,6 @@ class UserOrders {
/** @var array<string,string> */
private array $post_image_cache = [];
/** @var array<string,string> */
private array $post_permalink_cache = [];
/** @var array<string,string> */
private array $type_labels_cache = [];
@@ -187,12 +184,10 @@ class UserOrders {
$type_label = $this->type_labels_cache[$product_type] ?? __('订单', 'aksrt');
$title = $this->resolve_title($meta, $product_type, $product_id, $type_label);
$image = $this->resolve_image($meta, $product_id);
$permalink = $this->resolve_entitlement_url($product_type, $product_id, $meta);
$group = $this->status_group($status);
$payment_method = sanitize_key((string) ($order['payment_method'] ?? ''));
$can_pay = $group === OrderCenterQuery::STATUS_PENDING && $payment_method !== 'manual_review';
$can_cancel = $group === OrderCenterQuery::STATUS_PENDING;
$can_open = $group === OrderCenterQuery::STATUS_PAID && $permalink !== '';
$order_number = (string) ($order['order_number'] ?? '');
$updated_at = $this->resolve_updated_at($order);
@@ -213,7 +208,6 @@ class UserOrders {
'product_id' => $product_id,
'product_name' => $title,
'image' => $image,
'permalink' => $permalink,
'created_at' => (string) ($order['created_at'] ?? ''),
'payment_method' => [
'value' => $payment_method,
@@ -222,10 +216,8 @@ class UserOrders {
'allowed_actions' => [
'can_pay' => $can_pay,
'can_cancel' => $can_cancel,
'can_open' => $can_open,
],
'time_left' => $this->get_order_countdown((string) ($order['expires_at'] ?? ''), $status),
'entitlement_label' => $this->entitlement_label($product_type),
'updated_at' => $updated_at,
'status_version' => $this->resolve_status_version($order, $updated_at),
'invalidation_tags' => array_values(array_filter([
@@ -338,35 +330,6 @@ class UserOrders {
return '';
}
/** @param array<string, mixed> $meta */
private function resolve_entitlement_url(string $type, int $product_id, array $meta): string {
$post_id = $product_id ?: (int) ($meta['post_id'] ?? 0);
$cache_key = $type . ':' . $post_id;
if (array_key_exists($cache_key, $this->post_permalink_cache)) {
return $this->post_permalink_cache[$cache_key];
}
if ($type === DomainModel::ORDER_PRODUCT_VIP) {
$url = function_exists('aksrt_get_user_center_tab_url') ? aksrt_get_user_center_tab_url('vip') : '';
} elseif (in_array($type, [DomainModel::ORDER_PRODUCT_RECHARGE, DomainModel::ORDER_PRODUCT_POINTS], true)) {
$url = function_exists('aksrt_get_user_center_tab_url') ? aksrt_get_user_center_tab_url('credits') : '';
} else {
$url = $post_id > 0 ? get_permalink($post_id) : '';
}
$this->post_permalink_cache[$cache_key] = is_string($url) ? $url : '';
return $this->post_permalink_cache[$cache_key];
}
private function entitlement_label(string $type): string {
return match ($type) {
DomainModel::ORDER_PRODUCT_VIP => __('查看会员权益', 'aksrt'),
DomainModel::ORDER_PRODUCT_RECHARGE => __('查看余额', 'aksrt'),
DomainModel::ORDER_PRODUCT_POINTS => __('查看积分', 'aksrt'),
default => __('打开已购内容', 'aksrt'),
};
}
private function payment_method_label(string $method): string {
$labels = [
'balance' => __('站内余额', 'aksrt'),