When using OptimizeMember along with a Payment Gateway we offer integration with (Stripe, Paypal, Authorize.net, etc..) there is a section under the gateway options where you can setup and control what happens to users when they cancel or get refunded. An example of where this can be found is "OptimizeMember > Paypal options > Automatic EOT Behavior"
If you have these settings similar to what is shown above, to demote users, but you find that they are not getting demoted, here is what you should check for:
- Firstly, check to see when their last payment was before they cancelled the subscription. Example if they are on a monthly subscription and it is cancelled 2 days after their payment, OptimizeMember will still allow them to use up the time they paid for, so in this case, the EOT will not trigger for another 28 days or so.
- Refunds of buy now transactions should always trigger an immediate EOT action if you have the same settings as in the screen shot above. Refunds of Subscriptions will normally trigger an EOT within 24 hours (this is a built in buffer to make sure the subscription doesn't end to soon). If you believe that an EOT action should have already happened, please continue on with the other steps below.
- Check that the user has an EOT date by going to "users" and clicking the edit link to edit a user. You should see a date there. If not, then you may have not setup your payment gateway correctly. Be sure to go back through all the settings to be sure nothing was missed.
- For Paypal, please check that you have the correct PayPal PDT Identity Token, or if one is not there, it will need to be added. If it is wrong or missing then the EOT system will not function. This can be checked under "OptimizeMember > PayPal Options > PayPal PDT / Auto Return Integration"
- If you are using stripe, please be sure you have the Web hook under your account settings in Stripe is "live"
- Your WordPress Cron Job may not be running. If you see an EOT date for the user, but the time has passed and they still have access, you can try manually activating the Cron job by going to this url (replace yoursite.com with your site url): http://yoursite.com/?optimizemember_auto_eot_system_via_cron=1 - once you do that then the cron job should finish in just a second or two and you should then see the user's role changed to "subscriber" or if you selected for the user account to be deleted, then that should take place as well.In the case where your cron jobs are not running, you may need to reach out to your web host and see if they can investigate this for you.
- Server issue. There could be an issue with how your server is configured. We suggest using the OptimizeMember Server Scanner tool to check for errors.
- Other plugins. In some cases we find that other 3rd party plugins may conflict with letting the cron jobs run as well. Please also test the url mentioned above with all other non OP plugins deactivated to see if there is a conflict. If there is, we suggest going through the troubleshooting guide as well to try to find it.
If you find that you are still having some issues with the EOT settings functioning properly after trying these tips, please open a support ticket and we will be happy to investigate this for you.