The Extra Expiration Warning Emails Add On sends additional emails about expiration at set periods before the membership fully expires. By default, PMPro will send one expiration notice 7 days prior to expiration. This Add On allows you to add more notices along the lifecycle of a user’s membership.

Use the Extra Expiration Warning Emails Add On to keep members informed of their upcoming expiration. Not only a benefit to members, this Add On also helps you, the site owner, retain more members who did not know they were going to lose access. Some primary benefits include:

  • Improves transparency and communication, especially for members with a busy email inbox.
  • Reduces churn by encouraging members to renew before they lose access to your membership.
  • Use custom filters to send a more personalized email at specific periods before membership is finally expired and cancelled.
  • Give busy members more time to act on their renewal, preventing unexpected expirations and lapses in membership benefits.

With no settings to configure, this Add On is a straightforward drop-in that increases member satisfaction and demonstrates a proactive approach to communication, especially during the sensitive period before a member expires.

Video: Extra Expiration Warning Emails Demo

Installation

You must have the Paid Memberships Pro plugin installed and activated with a valid license type to use this Add On.

  1. Navigate to Memberships > Add Ons in the WordPress admin.
  2. Locate the Add On and click Install Now.
    • To install this plugin manually, download the .zip file above, then upload the compressed directory via the Plugins > Add New > Upload Plugin screen in the WordPress admin.
  3. Activate the plugin through the Plugins screen in the WordPress admin.

Settings

By default, Paid Memberships Pro will send members an email notice 7 days prior to their expiration date. Use this Add On to send additional emails about expiration at the intervals that make sense for your business.

  1. Once activated, the Add On will automatically begin to send extra expiration warnings emails at 90, 60, and 30 days prior to membership expiration.
  2. You do not have to adjust any settings or configure any additional logic for this default behavior to work.
  3. If you would like to send additional emails about expiration at different periods, you must use a custom filter for the pmproeewe_email_frequency_and_templates array. See the recipe below for an example.

Code Recipe: Customizing the Email Frequency

You can add this recipe to your site by creating a custom plugin or using the Code Snippets plugin available for free in the WordPress repository. Read this companion article for step-by-step directions on either method.

Customize the $settings array with your desired frequencies. Your custom filtered settings will completely override the default behavior (90, 60, and 30 days). You should keep any of these default periods in the settings array that you want to continue to send.

Important Notes After First Activation

The first few times this code runs, the Add On sends expiration notices to members expiring up to and including each additional period in your settings. For example, if you have 30, 60, 90 day notices set up:

  • Members expiring within 30 days will receive the 30 day notice
  • Members expiring within 31 to 60 days will receive the 60 day notice
  • Members expiring within 61 to 90 days will receive the 90 day notice

This is just for the Add On to “catch up” with members somewhere in between the intervals specified.

You can use a tool like Email Log by Sudar to view the live emails being sent through your membership site and confirm that everything is accurate.

Or, you can enable debugging to see what emails are being sent and to whom. To enable debugging, add the following constant to your WordPress site’s wp-config.php:

define( 'PMPROEEWE_DEBUG', 'log' );

Save the debug information to the default Extra Expiration Warning Emails log file. The default file location is: /plugins/pmpro-extra-expiration-warning-emails/logs/pmproeewe.txt. While this log does not contain any user identifying information, we do recommend that you periodically delete the file.

define( 'PMPROEEWE_DEBUG', 'email@domain.com' );

Send the debug information to a specific email address rather than save to a log file on your server.

Customizing the Email Content Per Expiration Period

By default, the Add On sends the Membership Expiring template for each additional expiration email that is sent.

You can send different emails at each interval or for specific intervals using the custom filter pmproeewe_email_frequency_and_templates.

In the code recipe example below, we are sending three custom emails at 60, 30, and 10 days prior to expiration.

Customize this code with your desired frequencies and template names then add it to a helper PMPro Customizations plugin.

Once this code is added to your site, you can customize the content of the emails via the Email Templates settings.

  1. Navigate to Memberships > Settings > Email Templates.
  2. Select one of your new custom templates, like Membership Expiring 1.
  3. Edit the content of your custom email and save changes.
  4. Repeat these steps for any additional custom email warnings you added.

Testing the Expiration Warning Email

You can test that the expiration warning messages are working properly by adding the request variables pmproeewe_test=1 and pmproeewe_test_date=YYYY-MM-DD to the URL of your site.

Note that you must be logged in as the administrator when you do this and enable WP_DEBUG.

If the test is successful, no actual emails will be sent, but a note will print to your debug log file prefixed with the note PMPROEEWE: and details to confirm whether the test was successful.

You can substitute the YYYY-MM-DD with an actual date to simulate the day the test is supposed to treat as the test date (i.e. if I have a configuration for sending a message 7 days before expiration, use today’s date – (minus) 7 days).

The URL to test would be of the format:
http://example.com/?pmproeewe_test=1&pmproeewe_test_date=2024-07-31

Screenshots

Screenshot of an example expiration warning email sent by Paid Memberships Pro
Screenshot of an example expiration warning email sent by Paid Memberships Pro

Action and Filter Hooks

apply_filters( 'pmproeewe_email_frequency_and_templates', $emails array );

An array of the number of emails you want to send, at what frequency, and whether to use the default or a custom template for the email messages.

apply_filters( 'pmproeewe_bcc_admin_user', false );

Allow the admin to be BCC’d on all emails sent by this Add On.

apply_filters( 'pmproeewe_send_reminder_to_user', true, $euser );

Whether to send the actual email to the user. This hook is used by the Add On to validate the set up and for testing.

apply_filters( 'pmproeewe_logfile', $logfile );

Adjust the location of the log file, if logging is enabled.

This is a Standard Add On.

Standard Add Ons are included in all premium membership plans.