Recently we’ve been getting a lot of questions along these lines from PMPro users using PayPal Standard:

All a user has to do is go through the signup process on the site, create a username/password, be taken to the Paypal portion,(at this point they are considered Subscribers to the site now without actually paying yet) then simply hit the back button on the browser to go back to your site and they have full access without paying

This is how our integration with PayPal Standard works. Before the user is taken to PayPal to pay, we create a WordPress user on your site. However, that user does NOT have a PMPro membership level yet. The membership level is only given to the user once PayPal sends an IPN message that the payment has gone through.

The solution here is to simply lock down your site for non-members. Users with a WP user, but no PMPro level should not have access to your member content.

You need to check “Require Membership” on your member content, or check categories for your membership levels, or use code like this, or use any of the tactics in our documentation, to lock down your content.

There are more reasons to avoid using PayPal Standard.

If you are interested, the reason we’ve programmed our PayPal Standard integration to work t this way is that when the user goes to PayPal, we have no way of knowing if or when they will come back to the site. Even if they pay, they might not click the “return to site” link to return to your site. Other membership plugins will typically check that payment has gone through and then direct users to sign up and create their user account after payment. We’d like users to be able to enter everything on one checkout page and so ask for the username and password up front and create the user account then.

Other gateways like PayPal Express don’t work this way. With PayPal Express, we get an immediate response from PayPal after the user checks out. So we can wait for payment to go through before creating the user account. If there is an issue with payment, we won’t create a WP user account.

However, even though other gateways will wait to create a user account, we still recommend that you lock your site down for members vs. non-members. When members cancel, they retain their WP user account (and just lose their membership level) and there are generally other ways to gain an WP user on your site without a membership level. So it’s a good idea to think more about members vs. non-members than users vs non-users.


Author’s gravatar

any lpans on introducing bitcoins or litecoins as payment processors?

Reply
Author’s gravatar

Yes. Bitcoin support through Coinbase and Bitpay are planned after v2.0 goes out. Maybe by fall.

Reply
Author’s gravatar

Looking forward to this. I was going to try and code it in myself using their plugin, but since you are working on it, my client will wait until it is released. Great plugin BTW and should be upgrading to membership myself soon for some further customizations.

Author’s gravatar

I keep receiving this error:

Your payment was accepted, but there was an error setting up your account. Please contact us. Cannot create a user with an empty login name.

Any help or links to more information would be appreciated!

Reply
Author’s gravatar

Have you posted to the member forums? Can you link me there so I can follow up? Or post a new thread and let me know.

We’ve seen a few issues like this. It’s usually another plugin (or sometimes some of our code) that is breaking when PMPro tries to create the new user. Seems like the login name is being forgotten… maybe by an HTTPS to HTTP redirect when coming back from PayPal.

Some of these issues have been fixed in PMPro core in recent updates. So make sure you’re running the latest verison of PMPro.

Reply
Author’s gravatar

I am using paypal express but am still getting the user registration without paying issue AND they are not being given the option of not having a paypal account (pay by card – processed by paypal) – any tips? xx

Reply

Leave a Reply

Your email address will not be published. Required fields are marked *