Our Saint Louis web design team was recently contacted by a client who was experiencing issues with members who paid for renewals. Members were renewing their memberships on a custom WordPress website that IQComputing designed and while orders were being processed, the actual memberships themselves weren’t being extended.
A bit of background about WooCommerce Memberships
The WooCommerce Memberships plugin is a popular albeit paid plugin by SkyVerge, having been introduced in 2015. It focuses on the ability to sell paid/free memberships on the popular WooCommerce platform. You can even combine it with the WooCommerce Subscriptions plugin to sell automatic recurring subscriptions however on its own, WooCommerce Memberships offers a great approach to selling memberships which can be renewed manually each year by members (think clubs, organizations, or other groups that don’t want members to automatically renew each year).
Investigating the WordPress Membership Website Issue
Our WordPress developers went to work to determine the circumstances surrounding the affected membership accounts which would likely help to lead to the underlying issue itself. Curiously enough, it was determined that newer members weren’t experiencing the issue however members who had expired more than a year ago, would renew and despite a successful renewal process, their memberships would expire almost immediately. The team at IQComputing was then able to determine that it wasn’t an issue the membership expiration functions but rather that previously expired members were not having their membership expirations added from the date of the order and instead, the additional membership timeframe was being added to the date of the original order.
- Charlie was a member three years ago, and let his membership lapse after that first year
- Charlie decides to renew his membership and pays for a year
- The order is processed successfully by WooCommerce which displays a completed order status, sending Charlie his confirmation email
- Charlie’s membership is switched to active and a year is added to his original expiration date
- Then within a few minutes, his membership status goes back to expired, sending a notification to Charlie who is frustrated that he paid for a membership that shows as expired
To recap, renewals for memberships with old expiration dates were being renewed but their dates weren’t being extended based on the latest order date.
Squashing the WooCommerce Memberships Bug
When a membership expires, their membership goes to an expired status as expected. This is inherent to the plugin and works just fine. The desired outcome when an expired member renews, whether it be two months later or two years after that expiration date, is that new expiration date should be based on the order date and not on the original expiration date.
Why add a year of “catchup” to Charlie’s membership above since he hasn’t been a member for two years? Since he renewed “today” then his membership term should be determined by the order date (today), rather than his original expiration date which would otherwise still cause his account to be expired as soon as the check for expired memberships runs. There might be unique cases where this would make sense but in the context of the average WooCommerce memberships website, this wouldn’t apply and could possibly result in some unhappy members who get charged without receiving the benefit of the new membership order.
Our Saint Louis web design team contacted the ninjas over at WooCommerce and after helping them to understand the scenario, a pre-production development patch was released which will be likely be incorporated in an upcoming release by SkyVerge.