Users pay via Paypal, then get "User registration is currently not allowed."

This site has used paypal buttons/IPN with s2member successfully for several years.

I’ve recently moved the site to a new host, and added a new paypal button, for a new subscription option.

Now users who click the button, successfully pay via paypal, and are redirected back to the site, get the login form (http://www.navsa.org/wp-login.php?action=register), with “User registration is currently not allowed”.

If paypal IPN payments are working correctly, originating from an s2member shortcode-generated button on the website, and users are getting emails with links to return to the site, why would they be presented with “Registration is not currently allowed”?

If I am logged in to the WP dashboard as an admin, and I visit the link they get from paypal, I get the registration form correctly, and can complete their registration for them. Any help would be much appreciated.

Also, if I enable open registration, this process works flawlessly, but that’s not an option.

Your paid users are being directed to the wrong URL, and are instead being sent to the free registration URL. You need to check your PayPal button code.

Hi @KTS91,

It appears they’re being sent to http://www.navsa.org/?s2member_register=[link_code]. What should it be, and how do I set it to that correct location?

Oddly, the same link worked before, and works now if you’re logged in.

Many thanks!

Jamie

I haven’t used PayPal for years, but that looks right. So that suggests that the problem is that s2Member is not picking up the information (cookie?) from PayPal when the user pays there. So you need to check that you have put everything in correctly in both s2Member and PayPal.

Alternatively, use s2Member Pro forms and avoid the problem altogether!

Thanks, @KTS915 , This is s2member Pro, actually. How are forms are better than buttons?

Reading through the s2member docs, I see – the pro forms feature avoids the round trip to paypal.com. My client doesn’t have a paypal pro account however, and $30/month is steep for just this one feature.

Given that the link works when I’m logged in, or when open registration is enabled, it seems as though this is just a misconfiguration of some sort.

I agree.

Exactly. If your client changed to Stripe instead, s/he wouldn’t have to pay a monthly fee, and this sort of issue (which is common with PayPal’s API) would pretty much be a thing of the past. I don’t know anyone who uses Stripe that would willingly go back to PayPal.

Hi @KTS915,

Great, thanks – I am investigating Stripe now. One issue with a switch would be whether it’s possible to import all historical subscription information from paypal to stripe. If that’s possible, this could be a solution.

But I’m not convinced there isn’t a simple explanation for why these links don’t work. They work flawlessly when I am logged in as an admin of the site, for example, so if a customer pays via paypal, then forwards the confirmation email to me, and I click it, I can enter username, email, etc, and complete his/her registration for him/her.

Isn’t that the point of s2member – to allow a non-registered person to pay, then get access to the registration form which is otherwise inaccessible to non-paying users?

Thanks for all your help on this!

Yes, of course. But s2Member cannot control the notorious vagaries of the PayPal API. Having been active on WP forums for four years or so now, I have seen tons of reports of problems with PayPal, from people using a wide variety of plugins. I have never seen even one such issue raised about Stripe.

Makes sense. I’ll wait to hear back from Stripe about migration. Thanks!

Hi again @KTS915,

To make the switch to stripe, could we:

  1. Create new signup and renewal forms/buttons using stripe as the payment processor, and
  2. When an existing paypal-managed membership hits its renewal date, have s2member send the user an email with a link to the new stripe signup form, requiring users to re-enter their CC info?

I’ve seen your reply to this question which suggests that converting existing users would be a hassle.

This approach would just transition people over gradually. Does that make sense?

Thanks!

Jamie

Yes, that’s the way I’d do it.

1 Like

While I also recommend changing to Stripe, it sounds like you have problem with auto-return on PayPal. Please double-check your settings here: WP Dashboard → s2Member → PayPal Options → PayPal PDT/Auto-Return.

Thanks @JediShark, sounds plausible, but why would user registration links work for me if I’m logged in, but not for the user, post-payment?

I’m making an assumption here, so bear with me: When you say the registration links “work” you mean that you are able to get to those pages when you are logged in, right? Not that you’ve actually tried to register while logged in? Also, you don’t mean that you’ve gone through the s2Member payment process while logged in, right? (That should not work on so many levels…)

If that’s the case, as I said, the problem isn’t with access to the pages themselves: it is with the return process from PayPal. If it isn’t the case and you can 1) register while logged in and/or 2) Make an s2Member membership (not an upgrade, etc…) purchase while logged in, then you have bigger issues.

While logged in as an admin, I can reach the registration form, and fill and submit it on behalf of a user who has paid, by using the link they get in their welcome email. That creates the user account with correct unique Customer ID, membership level, etc.

I hear your point that “registering while logged in” doesn’t make sense, but the effect is the same as creating a new account via Add New User in the WP dashboard, taking the Customer ID from the paypal IPN log.

A user who’s just paid, and has been redirected from paypal to the site is supposed to be able to see that form, but can’t, instead getting redirected to the “User Registration is currently not allowed”.

And no, I’m not going through the payment process myself while logged in.