Why WooCommerce Memberships Ending Soon Email Doesn’t Work?
If you use both WooCommerce Memberships and Subscriptions plugins on your website you may wonder why "Memberships Ending Soon" email is never sent.

First reason – there is a hook, which turns off this email if a Membership is connected to a Subscription
There is a hook woocommerce_email_enabled_WC_Memberships_User_Membership_Ending_Soon_Email
deep inside WooCommerce Memberships plugin, so, the Subscriptions plugin connects to this hook and:
- gets a user membership with
wc_memberships_get_user_membership()
, - checks if this membership is connected to a subscription or not with
wc_memberships_is_user_membership_linked_to_subscription()
, - returns
false
if connected.
Example of overriding this scenario:
add_filter( 'woocommerce_email_enabled_WC_Memberships_User_Membership_Ending_Soon_Email', 'misha_override_ending_soon', 30, 2 );
function misha_override_ending_soon( $is_enabled, $user_membership ){
return true;
}
Do you think anything will change if you use that hook? Lol, it won’t.
Second reason – scheduled action will not be created for Memberships without an expiration date
But as you can see below, all Subscription-based memberships doesn’t have an expiration date.

So, even if you run the hook I mentioned above, Ending Soon emails (wc_memberships_user_membership_expiring_soon
hook) won’t be scheduled anyway.
But why WooCommerce does it? I think it is because subscriptions doesn’t support early renewals at this moment. So, there is just no reason to send a reminder a couple days ago because you can not put the renewal link into the email.
How to Make Ending Soon Emails Work for Subscription-based Memberships?
Currently I’m working on a plugin that allows to turn the Ending Soon emails on for Subscription-based memberships too. Leave a comment down below ? if you want me to send you the link to the plugin once it will be ready.

Misha Rudrastyh
Hey guys and welcome to my website. For more than 10 years I've been doing my best to share with you some superb WordPress guides and tips for free.
Need some developer help? Contact me
Hi Misha,
I would be very interested to see your plugin once it is ready.
Hi Scott,
I’m glad to hear that and I need your help.
Please describe here in details how are you going to use the plugin? Because I’m a bit stuck in functionality. Not sure what is needed for people.
Are you using both Subscriptions and Memberships? Do your customers have multiple memberships or subscriptions? etc :)
I think that the elements you have outlined in your article are the features I would be looking for.
The option to have subscription renewals send a reminder a couple days/weeks before the end date is really important to ensure the subscriptions are renewed.
When a subscription is linked to a membership level, this becomes even more important.
The “Membership Ending Soon” email (and/or the “Subscription Ending Soon” email) should ALWAYS be sent.
I would like to see all Subscription memberships have an end date enforced.
If this is not possible, then adding options for Admins to dictate what time-frames to use to send the “Subscription Ending Soon” email would work.
Eg: Send renewal reminder email 330 days after start & 355 days after start.
Misha,
Thanks for the excellent post.
I have a site where I have a Membership plan enabled for a free trial and a separate plan for the actual paid product. I have people with expiration dates (which I have manually modified via SQL query to extend the trial) and these individuals are not linked to a subscription. Emails are not being sent on what I think is the correct schedule.
I’m really interested to understand how the hook works – does it trigger at the exact time and date of a membership expiry? Is there a batch process running at some point? Any info would be helpful.
In regards to functionality of your plugin – I get why they have set it up this way – as a recurring monthly subscription (my use case) does not want an email sent to customers each month – I simply want the system to take a card payment and send a paid invoice.
I can see however other use cases where you would want membership ending emails to be sent in all cases.
Happy to chat on DM / Slack etc
Hey,
Does WP_Cron work on your website?