Subscriptions Schedule – 5 Commonly Asked Questions

In this week’s blog, we tackle 5 of the most common questions you ask us about the WooCommerce Subscriptions Schedule Plugin.

1. If I want a subscription to bill on the 1st and the 15th of the month how do I do that?

You will need to create a custom renewal schedule for the 1st and 15th of each month the subscription will renew. For example, if you want your schedule to run from January 1st to July 15th you would use the following schedule.

Remember if you only list two dates, on your schedule, January 1st and 15th the product will renew on those dates only and then again on January 1st and 15th of the following year. You will want to be sure and set the schedule for each renewal date you desire.

Keep in mind if there’s a specific end date for the subscription, an expiration date will need to be added at the product level. If no expiration date is set, after completing all renewal dates the subscription will commence again on the first date of your schedule of the following year.

2. I would like to set up a custom schedule for one member only. Is that possible?

You can try creating a subscription product that is private or password protected. Then share it with the desired client only. Be sure the product has been set to the custom renewal schedule.

We also recommend checking out the WooCommerce Cart URL plugin. You can create a custom Cart URL visible only to those who have the URL. Once shared with the customer the desired subscription will appear in their cart.

3. What happens if a customer misses a payment? 

When a client misses a payment your WooCommerce store has failed payment handling built into it. We suggest reviewing the details, here as these are the actions that will take place when customers have a failed payment.

4. What happens to active subscriptions after you add a custom renewal schedule to a product?

If a customer has an active subscription to a product before the custom renewal schedule is added, then the customer’s subscription will renew on the original Next Payment date. Once the subscription renews the new schedule will be used to set the next renewal date instead of the subscription’s original frequency.

At the time of renewal, the code loops through all products included in the subscription and will check them for a subscription schedule. If one is found then the Next Payment date is retrieved from the schedule and set as the Next payment date for the subscription.

5. How do I add existing subscriptions to a custom renewal schedule?

Follow these steps to add a schedule to existing subscriptions:

1. Create schedule and get schedule ID

  • Go to WooCommerce > Settings
  • Click Subscriptions Schedule
  • Create a schedule if none is created yet.
  • Right click on the schedule and inspect the element.
  • Check the input “sp_wcss_box_schedule” value.
  • The first item in the json will be the “id” element.

2. Add schedule to product

  • Go to WooCommerce > Products
  • Find subscription product to add schedule
  • Set the schedule in the Schedule dropdown on the Product data > General tab

3. Get Subscription ID of existing subscription.

  • Go to WooCommerce > Subscriptions
  • Find the subscription to add a schedule to
  • Get the ID from the Subscription name.
  • Example: #223 for John Doe. 223 would be the ID.

4. Create a row in the database.

  • Create an insert statement for each subscription.
  • meta_id – Use 0 as this will be set by mysql.
  • post_id – This is the post_id of the subscription from step 3
  • meta_key – This is the string ‘_subscription_schedule’
  • meta_value – This is the schedule ID from step 0

Example: insert into wp_postmeta values(0, 223, ‘_subscription_schedule’, 0);

5. Go to the existing subscription and set the Next Payment date to be the next date on the subscription schedule. After the next renewal, the subscription will now use the assigned schedule.

We hope you enjoyed this post. If there’s a question you would like to see answered, just let us know. Send us an email, and we’ll be happy to respond to your request.