Think twice before you decide to use PayPal Standard as your gateway option with Paid Memberships Pro. There is one good reason to use PayPal Standard over PayPal Express:
- Users making one-time purchases on your site will be able to checkout at PayPal without creating a PayPal account.
There are several reasons why you wouldn’t want to use PayPal Standard. I’ll list them here and then go into more detail. If you have gone through this information and still want to use PayPal Standard with PMPro (many people do successfully), be sure to skip below for tips on troubleshooting and avoiding issues that might interfere with your use of PayPal Standard with PMPro.
Here are the reasons why you wouldn’t want to use PayPal Standard.
- PayPal Standard is not integrated as tightly (more below) as PayPal Express.
- If your subscriptions are recurring, your users will have to sign up for a PayPal account anyway.
- There are more opportunities for things to go wrong with PayPal Standard.
- Many of our add-ons and code recipes don’t work with PayPal Standard.
- PayPal Standard takes more effort for us to support, and we might not choose to support it in the future.
RE #1: the main issue is that with PayPal Standard, the final approval for checkout is done over at PayPal.com. Because of this, we need to wait for the PayPal IPN to send confirmation that the payment was received before we can give a user access to a membership level. We create a WordPress user for them, but we don’t change their membership level until the IPN notification goes through. This is very different from every other gateway we integrate with.
There are many things which can delay or prevent that IPN notification from going through:
- There can sometimes be a natural delay of a few seconds, to a few minutes, to a few hours. During this time, your members will be in a pending state and have to wait to gain full access to your site.
- On shared hosting, the script processing the IPN notification might time out and never finish.
- Some caching plugins and schemes might keep the IPN handling script from running properly.
- Problems with your PayPal settings (make sure the business email in the payment settings matches the email on your PayPal account) may keep the IPN handling script from verifying the notifications.
If you want to use PayPal Standard, go through this checklist if you are having issues:
- Make sure you are on VPS hosting or higher. PayPal Standard straight doesn’t work with 90% of shared hosts out there. Many hosts are changing things (caching more aggressively) at the low end which is sometimes causing issues to spring up where they weren’t before. If you are serious about your business, you need to upgrade your hosting and spend $30-$99/month.
- Make sure your caching plugins and schemes are ignoring the “/wp-admin/admin-ajax.php?action=ipnhandler” URL on your site. If you visit that URL directly, you should see some debugging information. The timestamp at the beginning should update on every page load.
- Make sure that the “Gateway Account Email” in the PMPro payment settings matches your business email address at PayPal, more preferably it should match your main PayPal email address.
If you are still having issues, we can often work them out for you (assuming you are on a good host) if you sign up for a PMPro support package and share your WP admin account and FTP account with us. Whenever possible, we try to fix issues in the plugin directly so people don’t need one off support like this, but we can’t account for every combination of hosting setups and plugin combinations. PayPal Standard is particularly sensitive, and we often need to tweak things for individual sites.
RE #2: PayPal Express, while still allowing users to checkout offsite at PayPal works better than PayPal Standard because the final transaction is initiated on your own site and confirmation of the payment is received immediately. This way we can upgrade a user immediately and most add-ons related to customizing the checkout process will work as intended.
Because the IPN handler is still used to process recurring payments to create invoices for recurring payments inside of PMPro and send notifications of missed payments, it is still important to make sure that PayPal is successfully connecting to your site. You should go through the same checklist above.
RE #3: As I said, the workflow for a PayPal Standard checkout is different from other gateways. More steps means more chances for something to go wrong.
RE #4: Add-ons and code recipes that rely on hooking into checkout and altering prices or adding fields, etc, may not work as intended with PayPal Standard. This is for a few reasons:
- It’s hard to keep track of information when users go off to PayPal.
- At checkout, a user may not have a membership level yet while we wait for confirmation. Some scripts may assume that the user is given a level immediately.
- The confirmation is eventually processed by the server and doesn’t have access to the user’s current browsing session or cookies.
- Generally we have to code things once for every other gateway and then once for PayPal Standard, and we sometimes won’t do the later if someone hasn’t hired us to do so.
RE #5: We initially launched PMPro without support for PayPal Standard. However, many people are more comfortable with PayPal Standard since it’s the default in most other membership plugins. So after over a year of people requesting it, we decided to add support. How hard could it be?
It was real hard. And still is. With every update, we spend more time maintain PayPal Standard than we do every other gateway we offer. If I had to do it all over again, I wouldn’t have added PayPal Standard support. In the future, if the burden of support PayPal Standard becomes too much, we may decide to give up on it unless there is someone to donate development time or money to support it. If we do decide to drop support for PayPal Standard, we will be sure to give you lots of early warning and will make a clean break (i.e. at version 2.0) so people who need to have time to migrate or work out support.
So what do we recommend in place of PayPal Standard?
- If you only have recurring subscriptions, PayPal Express also has no monthly fees and will work exactly as you need to.
- You might be grandfathered into the PayPal Website Payments Pro API or be able to convince PayPal to let you use it. A phone call could work.
- You can use Stripe or Braintree or Payflow Pro and setup PayPal Express as an alternative gateway. Stripe and Braintree also have no monthly fees. We hope to make it easier in the future to offer PayPal (or any other gateway) as a secondary checkout option with PMPro.
I hope this helps people who are thinking about using PayPal Standard with PMPro or experiencing issues. If you are still having problems, please sign up for support. If you have comments or concerns about the content of this post, feel free to post a comment, but we will not support the plugin through the comments here.