Методы получения всех подписок по идентификатору пользователя в WooCommerce

Чтобы получить все подписки по идентификатору пользователя в WooCommerce, вы можете использовать различные методы. Вот несколько примеров:

Метод 1: использование функции WC_Subscriptions

$user_id = 123; // Replace with the user ID you want to retrieve subscriptions for
// Get an instance of the WC_Subscriptions_Manager class
$subscriptions_manager = WC_Subscriptions_Manager::get_instance();
// Use the get_users_subscriptions() method to retrieve subscriptions
$subscriptions = $subscriptions_manager->get_users_subscriptions($user_id);
// Loop through the subscriptions and access subscription details
foreach ($subscriptions as $subscription) {
    $subscription_id = $subscription->get_id();
    // Access other subscription properties as needed
    // ...
}

Метод 2: использование функции get_posts()

$user_id = 123; // Replace with the user ID you want to retrieve subscriptions for
$args = array(
    'post_type' => 'shop_subscription',
    'post_status' => 'any',
    'posts_per_page' => -1,
    'author' => $user_id,
);
$subscriptions = get_posts($args);
// Loop through the subscriptions and access subscription details
foreach ($subscriptions as $subscription) {
    $subscription_id = $subscription->ID;
    // Access other subscription properties as needed
    // ...
}

Метод 3. Использование специального запроса к базе данных

$user_id = 123; // Replace with the user ID you want to retrieve subscriptions for
global $wpdb;
$query = $wpdb->prepare("
    SELECT p.ID
    FROM {$wpdb->posts} p
    INNER JOIN {$wpdb->postmeta} pm ON p.ID = pm.post_id
    WHERE p.post_type = 'shop_subscription'
    AND p.post_status IN ('wc-active', 'wc-pending')
    AND pm.meta_key = '_customer_user'
    AND pm.meta_value = %d
", $user_id);
$subscription_ids = $wpdb->get_col($query);
// Loop through the subscription IDs and access subscription details
foreach ($subscription_ids as $subscription_id) {
    // Access other subscription properties using $subscription_id
    // ...
}

Эти методы позволяют получить все подписки, связанные с определенным идентификатором пользователя в WooCommerce. Не забудьте заменить переменную $user_idфактическим идентификатором пользователя, для которого вы хотите получить подписки.