Recurring Memberships
-
Hi there
I’m hoping you can clarify how recurring memberships work.
I want to allow members to sign up to a monthly membership. Questions as follows –
1. What triggers the creation of the invoice for the next month and when will it be generated?
2. Apart from being excluded from access until they pay, what happens when a member pays late eg. let’s say they pay on 15th instead of 1st August? Will their next subscription still run from 1st August (as it should do) or from 15th (ie. date of payment)?
With many thanks in advance.
-
Hello @nikbond
1. It’s generated 5 days before the expiry date. But you can define a constant
MS_PAYMENT_DELAYin the wp-config.php to add more days on top of the 5 days2. If the
MS_PAYMENT_DELAYis over, then initial subscription is being cancelled, so after payment a new subscription is getting created, starting at the date of the payment (August 15th).Warm regards,
DimitrisThank you for your reply although I’d be grateful if you could clarify (note: if it makes any difference, this is a recurring membership I am trying to create)…
1. Am I right in understanding that MS_PAYMENT_DELAY sets the number of days BEFORE the expiry date that an invoice will be generated? ie. let’s say I set it to 5, then the invoice would be created 10 days (instead of the default of 5) prior to the expiry date?
2. Is the default MS_PAYMENT_DELAY always 5 days or does it vary depending on duration of the membership eg. 1 day, 1 week, 1 month, 1 year etc? And if so, what are the different default figures? (This would be useful to know so that I can test the system generally.)
3. I’m sure I read somewhere that it was possible to set a “grace period” which would give members a chance to pay the invoice within, say, 10 days AFTER the expiry date without having to “re-start” their membership. Is this correct/possible?
4. In testing, I manually added an existing member to a monthly membership and set their status to “Pending next payment”. An invoice was created (as I would expect) but although it was dated today (30th July), the “due date” is showing as 29th August (ie. one month from now). Surely this is incorrect and the due date for a new membership should be the same date as the day the invoice is created?
Note: if I sign up as a new user and select the same membership, the invoice and due date are both 30th July which is what I would expect so don’t understand why this isn’t happening when I’m adding someone manually. (I have a lot of existing users who I’m going to have to add to this new membership manually so it’s important to get this right.)
With many thanks again
NikHey @nikbond,
Hope you’re well.
Sorry for the late response here.
For your first, second and third questions; MS_PAYMENT_DELAY is a “grace period” adder. It means your users’ invoice will be generated before 5 days to expire and you can’t change it. But you can add more time after expiring with MS_PAYMENT_DELAY. It should be the same for all memberships. I think this answers those three.
For the last question; Let’s think for a recurring 1-month membership. When you set membership to a member manually, Membership 2 thinks that member should get first 1-month already and generate an invoice for the next month, so that’s why 1-month due date. Although I need more information (like membership properties, payment properties, and user properties) to answer this question 100% sure, that’s what I am thinking with the current information.
I hope this information can help more.
Cheers,
OguzHi Oguz
Sorry but I’m still not clear about the difference between the MS_PAYMENT_DELAY and the “grace period”.
You said above that
the invoice is generated 5 days before the expiry date. But you can define a constant MS_PAYMENT_DELAY in the wp-config.php to add more days on top of the 5 days.
From this I understand that MS_PAYMENT_DELAY relates to the invoice and how long before expiry it is generated.
Whereas the comments in the code state that –
The grace-period extends the subscriptions active stage by the given number of days to allow payment gateways some extra time to report any payments, before actually expiring the subscription.
Please can you explain the difference between the two?
Also if it helps, this is what I want to achieve –
Invoice is available to pay 1 month (or 30 days) PRIOR to expiry.
Members also have 1 month (or 30 days) AFTER expiry to pay the invoice before access is denied.The membership is 1 year recurring but some members will be paying either manually or PayPal Single payments so we can’t assume that payment on expiry date will be automatic.
Really, really hoping you can help with this as it is taking far, far too long to resolve what I feel sure are very basic requirements.
With many thanks in advance
Nik-
This reply was modified 7 years, 10 months ago by
Nik.
Hey @nikbond,
Hope you’re well.
There is a misunderstanding about what Dimitris wrote. But basically please think “MS_PAYMENT_DELAY” and grace period is the same thing. So there is no difference they are referring to the same thing. It’s not for generating invoice date, it’s for payment date. Using “MS_PAYMENT_DELAY” adds time to payment required day.
Your members’ invoice will be generated 5 days before expiry and the only way to add time for payment is “MS_PAYMENT_DELAY”. So 30 days before expiry and 30 days after expiry are not possible, you need custom coding for that. The only way out of the box to extend payment is “MS_PAYMENT_DELAY”.
Cheers,
OguzHi again
Thank you and OK I think I am beginning to understand, however, MS_PAYMENT_DELAY doesn’t seem to be working as I would expect ie.
In wp-config I set – define(‘MS_PAYMENT_DELAY’, 5);
I add a member to a one week membership (12th to 19th August) then change the dates so it is due to expire yesterday (ie. 4th to 11th August). The membership status immediately changes to “Expired (no access)”.
Surely the member should still have access for another 5 days?
Is this perhaps because I am changing the dates manually (it takes so long to check things if I don’t!) or am I still not understanding how MS_PAYMENT_DELAY is designed to work?
Regards
NikHey @nikbond,
Hope you’re well.
It looks like because of manual editing the dates and expires. Because of that is not executed same things at the backend with normal expire. With longer time regular test it can result correctly. So I recommend testing without changing dates manually for expire.
Although, we need a better experience for manual to expire and I created improvement task about it for our developers.
Cheers,
Oguz -
This reply was modified 7 years, 10 months ago by
The topic ‘Recurring Memberships’ is closed to new replies.