Unless I’m misunderstanding you, WC Subscriptions already has this functionality.
Firstly, set your subscription product to be variable or grouped, rather than having multiple individual products.
Set the subscription product to limit purchasing: https://docs.woocommerce.com/document/subscriptions/store-manager-guide/#limit-subscription
Then turn on allow switching: https://docs.woocommerce.com/document/subscriptions/switching-guide/#section-2
Hope that helps
Related Posts:
- Membership website with discount on scheduled appointment
- Correct function to get the user’s latest Woocommerce Subscription?
- How do I add a “Cancel” button on the subscriptions listing page [closed]
- WooCommerce Subscriptions: Show monthly Price for annual Product
- How to get woocommerce subscription next payment date or date when subscription expires in woocommerce_subscription_renewal_payment_complete hook?
- Woocommerce Subscription Pricing/Billing Schedule
- WooCommerce subscription, give option to prorate or not to prorate to user while switching subscription
- Subscription on Checkout
- How to subscribe free subscription on user registration in woocommerce subscription plugin?
- How to change a WooCommerce Subscription Deposit and Monthly Payment? [closed]
- Synchronise Renewals on existing subscriptions [closed]
- How to show the urls inside the simple product when the customer buys it?
- WooCommerce Subscriptions: Hide one variation subscription
- wp-cron and woocommerce subscriptions killing performance
- One Time Access URL after purchasing subscription
- Applying pre-production modifications
- How to send welcome email once user buys the subscription
- How to apply a custom coupon to a WooCommerce Subscription recurring amount?
- How Do I Access Parameters Emitted by an Action?
- How to disable the “Upgrade or Downgrade” button in “My account” of WooCommerce Subscriptions
- Edit woocommerce subscription email
- How do I remove the recurring total from thank you for your order email?
- Question about WooCommerce Subscription
- I want to update shipping charge $0 for all Woocommeerce Subscription auto-renewal orders
- wc_get_template_part( ‘content’, ‘product’ ) | Where is this file located?
- how to get woocommerce product attribute slug
- WooCommerce conditional meta query
- Add a custom button with custom link after add to cart for every product
- Redirect woocommerce single-product page
- Username field is not shown in Woocommerce’s registration contact form
- Woocommerce Membership Expiry Date
- Get WooCommerce product attribute taxonomies in a SQL query on WordPress database
- Show all author products from specific category
- Redirect user to cart page when add to cart button is clicked
- Change sign up fee in cart for subscription products WooCommerce
- Woo API REST : product variation price is read-only?
- how i can add more required * fields in checkout page?
- Disable Local Attributes woo commerce
- Problems with varibel price [closed]
- Custom Admin Email Subject for Woocommerce (3.8.0) Orders
- Woocommerce custom endpoints
- Replacing products on Woocommerce Product Category with Search Results from SearchWP [closed]
- Creating custom permalink tags for WooCommerce
- Add Custom Slug Tags Per Page
- How to override Woocommerce functionality in Reports section?
- how can use woocommerce add to cart popup?
- How to put Stripe first, PayPal second on the checkout page?
- How to change product thumbnail size in storefront theme
- Override static method in WC_Shortcodes class (shortcode) [closed]
- Woocommerce REST API – add filter to set maximum query per page for product brands [closed]
- display product’s category static slider name and image in loop wordpress
- Whitespace between product image and gallery on initial load of lightbox product page
- Why is my WordPress login credentials missing, but work with WooCommerce?
- Update Customer JWT Woocommerce
- How to reverse/swap the order of “Sales price” and “Regular prcie” in woocommerce?
- Woocommerce Canceled Order Notification email to admin
- separate functions for home VS other pages
- WooCommerce apply shipping rates based on price
- WooCommerce Admin order – Only run action if user is loaded
- Creating child theme out of Coeur
- Hide sidebar and change layout Blog Page using is_page() function
- Change Out of Stock Error Message in WooCommerce Cart
- Woocommerce purchase date [closed]
- How to add a special Woocommerce “buy now” button?
- I want a simple dropdown for locations in woocommerce
- Getting hundreds of spam orders in WooCommerce with failed stripe payment [closed]
- How to fetch woocommerce highest price and lowest price in custom template page?
- Filter by Price filter button not working
- WooCommerce pagination: remove ‘page’ from url
- Coupon for product / woocommerce
- How can I show “sold out” instead of “out of stock” for some products with particular tags and categories [closed]
- Assign user role by text field in WordPress (Woocommerce) [closed]
- Urgent Validate Save-Post Hooks on Woo-commerce product entry form!
- Is doing a database query in Woocommerce efficient to only display posts from a certain category?
- Call product search from custom hook
- MySQL error or data corruption after database migration
- My products are showing “not in stock” and I don’t know why
- Woocommerce change the price of products in the database
- Woocommerce – Shop can’t find products after domain name change
- “error_message”: “Sorry, you cannot list resources.” using WooCommerce API
- WooCommerce product details page category display
- Woocommerce – Default product image by user role
- login or register then access woocommerce website
- Move woocommerce shop page image to left
- WooCommerce Tax Filter Not Working
- WooCommerce does not translate every string
- Woocommerce add a text field if specific option is selected
- Add suffix to price html does not work
- Woocommerce Product category base same as product base causes 404
- Categories and products in cart Woocommerce
- SyntaxError: unterminated string literal – if WordPress Debug in wp-config is set to true
- How Fragile Is DB if I Upload Completely Updated Files
- Broken 302 redirection for product subcategory (Woocommerce, Apache)
- How to allow registration only from a certain location?
- Add confirmation popup on place order button
- Change WooCommerce Checkout Button – Reverts to normal
- Can’t display product categories on woocommerce getting Invalid taxonomy?
- Send form data to functions.php
- Can I remove WooCommerce specific product categories from shop managers?
- Conflict between Woocommerce Booking + Woocommerce Product Options [closed]