MemberPress integrates with payment gateways like Stripe and PayPal to handle subscription payments. When a user cancels their subscription from their account page or from the payment gateway directly, MemberPress should update the subscription status to “cancelled” and revoke access to protected content. However, sometimes subscriptions remain active in MemberPress even after the user has cancelled, allowing continued access to content that should no longer be available.
This problem can be a serious security and revenue issue. Former members who have cancelled may continue accessing premium content indefinitely, and new signups may be prevented if the system thinks the user still has an active subscription. The issue may affect all payment gateways or only specific ones, and it may appear after updating MemberPress or changing webhook configurations.
The most common cause of this problem is that the payment gateway’s webhook is not configured correctly, so cancellation notifications are not reaching the MemberPress site. Another cause is that the WordPress cron system is not running properly, preventing scheduled tasks like subscription status updates from executing. Server configuration issues can also prevent webhook requests from being received and processed.
Why MemberPress subscription cancellations fail
When a user cancels their subscription from the payment gateway (Stripe, PayPal, etc.), the gateway sends a webhook notification to the MemberPress site. This webhook contains information about the subscription, including the cancellation event. MemberPress processes this webhook and updates the subscription status to “cancelled” in the WordPress database, which then revokes the user’s access to protected content.
If the webhook is not reaching the MemberPress site, the cancellation will never be processed. Common webhook issues include incorrect webhook URLs in the payment gateway settings, security plugins blocking incoming webhook requests, or SSL certificate problems that prevent secure communication. Each payment gateway has a webhook configuration section where you can view the history of webhook attempts and see if any have failed.
Another common cause is that the WordPress cron system is not running properly. MemberPress uses scheduled tasks (cron jobs) to process certain subscription-related actions, including expiration checks. If WP-Cron is disabled or not triggering correctly, subscription statuses may not be updated even when webhooks are received. On low-traffic sites, WP-Cron may not run frequently enough, causing delays in cancellation processing.
How to check if cancellation webhooks are being received
Log into your payment gateway dashboard (Stripe, PayPal, etc.) and navigate to the webhook configuration section. Look for the webhook history or logs, which show all webhook attempts sent to your site. Check for failed attempts, error codes, or retries. If you see webhooks with a status of “failed” or “retrying,” the gateway is trying to send notifications but your site is not accepting them. This is often due to security plugins blocking the requests or SSL certificate issues.
Step by step guide to fixing MemberPress subscription cancellation problems
Follow these steps in order to restore proper subscription cancellation processing in MemberPress. Start with the simplest solutions before moving to more advanced troubleshooting steps.
- Check the payment gateway’s webhook history for failed cancellation notifications
- Verify that the webhook URL in the payment gateway settings is correct (typically https://yoursite.com/?memberpress_webhook=stripe or similar)
- Exclude the webhook endpoint URL from all security plugins and firewalls
- Ensure that the site has a valid SSL certificate (webhooks require HTTPS)
- Check that the WordPress cron system is running properly (install a cron monitoring plugin)
- Set up a real cron job on the server to replace WP-Cron for reliable scheduling
- Temporarily disable all security plugins to test if they block webhook requests
- Check the PHP error logs for any fatal errors during webhook processing
- Update MemberPress to the latest version available from the official website
- Manually cancel affected subscriptions using the MemberPress admin interface
How to exclude MemberPress webhook endpoints from security plugins
In Wordfence, navigate to Firewall → Advanced Rules and add the webhook URL pattern to the whitelist. In Sucuri, go to Settings → Firewall and add the webhook URL to the “Allowlist” section. In iThemes Security, go to Settings → Firewall and add the webhook URL to the “Authorized Hosts” list. The webhook URL pattern is typically /?memberpress_webhook= followed by the gateway name (e.g., stripe, paypal).
MemberPress subscription troubleshooting reference table
Here is a reference table for diagnosing subscription cancellation problems in MemberPress based on specific symptoms you might encounter.
| Symptom | Most likely cause | Recommended solution | Subscription cancelled in gateway but active in MemberPress | Webhook not received or not processed | Check webhook history and whitelist endpoint |
|---|---|---|
| Cancellation works for some gateways but not others | Gateway-specific webhook configuration issue | Check webhook settings for each gateway individually | Cancellation processed after long delay (hours) | WP-Cron not running frequently enough | Set up real cron job on the server | Cancellation fails only for recurring subscriptions | Recurring payment webhook configuration issue | Check that recurring payment webhooks are enabled in the gateway |