Sometimes we will receive questions like this:
“A problem we are having is that the user account is being created with full access before the payment is processed.”
This is by design and happens when you are using PayPal Standard as your gateway with PMPro.
What we do is give users a WordPress user account before sending them to PayPal to pay, but we don’t apply the membership level until PayPal updates RE the payment later via IPN. We need to do this with PayPal Standard for technical reasons (basically, we can’t remember the password they entered while we wait to hear back from PayPal).
The solutions for this are either:
(1) Lock down you content so it is only available to users with the paid membership level… not just WP users. Or
(2) Use a different PayPal solution (like PayPal Express), which communicates with PayPal immediately… and so we don’t even create a WP users until we hear back about the payments.
The reason this may be extra confusing is that some other membership plugins work different from ours: they process payment and then give users a way to sign up for a WordPress account. What’s great about PMPro is that (when using any other gateway besides PayPal Standard) we create the WP account at the same time that payment is processed. This is a better work flow for users since they only have one checkout/signup page to deal with.
Hope this helps anyone else running into this issue.