esc_like($search) . '%'; $where_values[] = '%' . $wpdb->esc_like($search) . '%'; $where_values[] = '%' . $wpdb->esc_like($search) . '%'; } if ($status_filter) { $where_conditions[] = "s.status = %s"; $where_values[] = $status_filter; } $where_clause = implode(' AND ', $where_conditions); // 获取总数 $total_query = "SELECT COUNT(*) FROM {$wpdb->prefix}yoone_subscriptions s LEFT JOIN {$wpdb->users} u ON s.user_id = u.ID WHERE {$where_clause}"; if (!empty($where_values)) { $total = $wpdb->get_var($wpdb->prepare($total_query, $where_values)); } else { $total = $wpdb->get_var($total_query); } // 获取订阅数据 $query = "SELECT s.*, u.user_email, u.display_name, p.post_title as product_name FROM {$wpdb->prefix}yoone_subscriptions s LEFT JOIN {$wpdb->users} u ON s.user_id = u.ID LEFT JOIN {$wpdb->posts} p ON s.product_id = p.ID WHERE {$where_clause} ORDER BY s.created_at DESC LIMIT %d OFFSET %d"; $query_values = array_merge($where_values, array($per_page, $offset)); $subscriptions = $wpdb->get_results($wpdb->prepare($query, $query_values)); $total_pages = ceil($total / $per_page); // 获取状态统计 $status_counts = $wpdb->get_results( "SELECT status, COUNT(*) as count FROM {$wpdb->prefix}yoone_subscriptions GROUP BY status" ); ?>
| #id; ?> |
user_id): ?>
display_name ?: $subscription->user_email); ?>
user_email); ?> |
product_id): ?> product_name ?: __('未知产品', 'yoone-subscriptions')); ?> | status); ?> | billing_period, $subscription->billing_interval); ?> | next_payment_date && $subscription->status === 'active'): ?> next_payment_date)); ?> | created_at)); ?> | |