Expiration Dates in Membership 2 Pro

I have a question about the expiration of subscriptions.

Currently I have two subscriptions setup on my website. Both are standard subscription types. They are configured to charge the client every 30-days. That first 30-day rotation came up recently and I had all sorts of trouble; namely, people were told their subscriptions had expired and that they had to re-sign up.

After a bit of digging around, I wound up launching my Stripe dashboard and removing all customers, completely deleting their information. Then, with a startling 100% success rate, I asked all of my current subscribers to resubscribe to a subscription on their account page. When they signed up I noticed that their subscription on the website (through Membership 2) was passed through Stripe to the correct corresponding subscription. Something that had not happened before and must have been a mistake on my part.

So I think everything is good. But this morning I got to thinking about the whole thing and I wondered "Why did the system send out expiration emails in the first place?" Even if Stripe was incorrectly configured, Membership 2 shouldn't have be cancelling monthly subscriptions after the first month. So I opened the Membership 2 dashboard and viewed the subscription details for one of my subscribers.

Sure enough, while the user was subscribed to a 30-day program, the start date was listed as 2016-04-21 and the expiration was listed as 2016-05-21... why?

Is this just how the Membership 2 platform is built? It "cancels" the subscription and then automatically renews it every 30-days? If that's the case, do I just need to turn off expiration emails? Should I change the expiration to a year out? Or will doing that cause the user to only be charged once a year?

My confusion stems from a lack of understanding about the relationship between Membership 2 and Stripe. I would expect that Membership 2 communicates to Stripe and says

"Hey, here's a new subscription, I need you to pop up your little payment gateway thingy"

and Stripe replies, "Sure, here it is!"

then the user punches in his or her payment information and Membership 2 says, "Alright, all set! You can go away now!"

At that point, how is the subscription managed? Stripe has been given the go ahead to charge every 30-days, right? But what if the user closes their account on the Wordpress side of things? Does Membership 2 inform Stripe and does Stripe then treat that as a cancellation? Similarly, when a subscription on the Wordpress side of things hits its 30-day mark, does Membership 2 communicate to Stripe to see if a payment has been made so it can seamlessly extend the membership?

As you can tell, I'm confused. I don't want my members being told their subscriptions are being cancelled every month and I need to trust that Membership 2 and Stripe are going to work together in a way that charges the subscriber without sending a bunch of noise to their inbox.

Best,
Tanner

  • Kasia Swiderska

    Hello Tanner,

    As you can tell, I'm confused. I don't want my members being told their subscriptions are being cancelled every month and I need to trust that Membership 2 and Stripe are going to work together in a way that charges the subscriber without sending a bunch of noise to their inbox.

    That should not happen with Stripe recurring payments - mail about expiration should be send when account is actually expire, not before expiration and not when payment was made and process. So what you saw is not correct behavior.

    Could you tell me if by any chance your members received multiple emails telling them that accounts will expire soon and then they get mail about account was actually expired?
    Did you check status of their accounts on the site? Were they showing as expired in Membership before you removed theirs subscriptions in Stripe?

    Would you mind allowing support access so we can have a closer look at this?
    To enable support access you can follow this guide here:
    https://premium.wpmudev.org/manuals/wpmu-dev-dashboard-enabling-staff-login/

    kind regards,
    Kasia

  • Tanner

    It's great that you asked that question because yes; people were receiving emails every 6 hours, 4 times a day. Myself included as I subscribe so that I can catch glitches if they happen.

    I've enabled support.

    I host a ScreenConnect server so, if you'd like, I can also have you connect directly to my machine so that you're able to see the Stripe side of things as well. Let me know if this is useful.

  • Kasia Swiderska

    Hello Tanner,

    Thank you for confirmation about those multiple emails - it looks like this a bug and it is already reported to our developers. It happens on some installations, to disable those emails please add

    define( "MS_DUPLICATE_EMAIL_HOURS", 24 );

    to your wp-config.php file

    and I also found similar issue that with those multiple emails members are receiving mail that their account was expired. I'm sending your thread to plugin developer, so he will check why this is happening on your site.

    kind regards,
    Kasia

  • Kasia Swiderska

    Hello Tanner,

    Sure enough, while the user was subscribed to a 30-day program, the start date was listed as 2016-04-21 and the expiration was listed as 2016-05-21... why?

    You didn't mention whether or not the expiration for each new sign up defaulting to 30-days was normal or abnormal behavior. Could you let me know whether or not I should extend those expiration dates?

    I'm bit confused here. If subscription starts at 21 of April then 21 of May is 31 day of subscription and this is correct date of expiration as subscription is set to 30 days. First day of subscription counts in to whole subscription period. So I'm not sure why you want to extend this subscription?

    Still - your members should not received those emails about their subscription expired - I spoke with developer and he is going to check your site - please keep support access open.

    kind regards,
    Kasia

  • Tanner

    Kasia,

    I'm probably not being clear, I apologize.

    In the attached membership screenshot (1.JPG) you can see the name of the membership, the type of membership, and the payment style: $3 (Pay each 30 days).

    In the subscription details screenshot (2.JPG) you can see that the start date is the day they enrolled in the membership. You can also see that the expiration date is 30 days later.

    My confusion comes from trying to understand why a recurring membership would be set to expire the same day it is set to renew. And this is why I asked

    Is this just how the Membership 2 platform is built? It "cancels" the subscription and then automatically renews it every 30-days?

    If you look at the Stripe screenshot attached (3.JPG) you see that Stripe is going to charge this member's card again in 30 days. When that happens, here's what I expect to happen, please tell me if this is correct.

    - Stripe makes the charge
    - Charge is approved
    - Membership Pro 2 is notified of the successful charge through API
    - The expiration date in the second screen shot changes by 30-days
    - Process repeats the following month

    Is that right? Because here's what I'm afraid of: Stripe will continue to charge the member every month but Membership 2 will cancel the subscription on the Wordpress side. Then I have a person paying money but receiving no access.

    Do you understand where I'm coming from?

    Best,
    Tanner

  • Kasia Swiderska

    Hello Tanner,

    I've marked your thread as bug - separately from the multiple emails - because issue with Stripe and expired accounts is separate one.

    In the subscription details screenshot (2.JPG) you can see that the start date is the day they enrolled in the membership. You can also see that the expiration date is 30 days later.

    About the dates issue - I've looked on your second screen where you marked 28 April till 28 May as 30 days. It would be correct if you did not count 28th of April to the total days of subscription. But Membership counts day when member subscribes to the subscription period: so in April it will be 28, 29 and 30 of April - 3 days. In May it is 28 days (on 28 day it is expiration day). 3 + 28 = 31 - so expiration day is correct - it is 31st day of subscription no the 30th day. So Membership should cancel subscription on 31 day if it will not receive information that the payment was made.

    I hope we are on the same page here with this expiration date and I fully understand your concerns now.

    Because here's what I'm afraid of: Stripe will continue to charge the member every month but Membership 2 will cancel the subscription on the Wordpress side.

    Membership should not do that - what you have experience was due to bug, and developer is taking care if it. Membership should not cancel when the payment was processed in Stripe and Stripe send this info to Membership.
    Whole process of renewal should be smooth - Stripe process payment, Membership receives information, subscription is renew for next 30 days - member has constant access. There should be no cancellation mails and no cancellation of subscription.

    kind regards,
    Kasia

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.