get_row($wpdb->prepare( "SELECT s.*, p.post_title as product_name FROM {$wpdb->prefix}yoone_subscriptions s LEFT JOIN {$wpdb->posts} p ON s.product_id = p.ID WHERE s.id = %d AND s.user_id = %d", $subscription_id, $user_id )); if (!$subscription) { wc_print_notice(__('订阅不存在或您没有权限查看', 'yoone-subscriptions'), 'error'); return; } // 获取相关订单 $orders = $wpdb->get_results($wpdb->prepare( "SELECT p.ID, p.post_date, pm.meta_value as order_total, pm2.meta_value as order_status FROM {$wpdb->posts} p LEFT JOIN {$wpdb->postmeta} pm ON p.ID = pm.post_id AND pm.meta_key = '_order_total' LEFT JOIN {$wpdb->postmeta} pm2 ON p.ID = pm2.post_id AND pm2.meta_key = '_order_status' LEFT JOIN {$wpdb->postmeta} pm3 ON p.ID = pm3.post_id AND pm3.meta_key = '_yoone_subscription_id' WHERE p.post_type = 'shop_order' AND pm3.meta_value = %d ORDER BY p.post_date DESC", $subscription->id )); ?>

id); ?>

trial_end_date): ?> next_payment_date && $subscription->status === 'active'): ?> end_date): ?>
status); ?>
product_id): ?> product_name ?: __('未知产品', 'yoone-subscriptions')); ?>
subscription_price); ?> / billing_period, $subscription->billing_interval); ?>

status === 'active'): ?> status === 'paused'): ?> status, array('active', 'paused'))): ?>

id) { switch ($action) { case 'pause': if (wp_verify_nonce($_GET['_wpnonce'], 'pause_subscription_' . $subscription->id)) { $wpdb->update( $wpdb->prefix . 'yoone_subscriptions', array('status' => 'paused', 'updated_at' => current_time('mysql')), array('id' => $subscription->id) ); wc_add_notice(__('订阅已暂停', 'yoone-subscriptions'), 'success'); } break; case 'resume': if (wp_verify_nonce($_GET['_wpnonce'], 'resume_subscription_' . $subscription->id)) { $wpdb->update( $wpdb->prefix . 'yoone_subscriptions', array('status' => 'active', 'updated_at' => current_time('mysql')), array('id' => $subscription->id) ); wc_add_notice(__('订阅已恢复', 'yoone-subscriptions'), 'success'); } break; case 'cancel': if (wp_verify_nonce($_GET['_wpnonce'], 'cancel_subscription_' . $subscription->id)) { $wpdb->update( $wpdb->prefix . 'yoone_subscriptions', array('status' => 'cancelled', 'end_date' => current_time('mysql'), 'updated_at' => current_time('mysql')), array('id' => $subscription->id) ); wc_add_notice(__('订阅已取消', 'yoone-subscriptions'), 'success'); } break; } // 重定向以避免重复提交 wp_redirect(wc_get_account_endpoint_url('yoone-subscriptions') . '/' . $subscription->id); exit; } } ?>