Skip to main content
Easy Digital Downloads Documentation
Documentation, Reference Materials, and Tutorials for Easy Digital Downloads

PayPal payments not marked as Complete

Easy Digital Downloads is designed to automatically mark payments as Complete once a purchase has been successfully verified through the payment processor.

If your PayPal payments are not being automatically marked as Complete, it usually means that one of several common issues is occurring.

In order for a payment to be marked as complete, Easy Digital Downloads has to be able to communicate with the payment processor, such as PayPal, to verify the purchase. If this communication is blocked or tampered with in any way, it can result in the purchases not getting marked as complete, which will also result in download links and purchase receipt emails not getting delivered.

There are several common reasons payments remain as “Pending”:

  • PayPal’s Instant Payment Notifications (IPN) system is not enabled or configured properly in your PayPal account
  • You have a plugin installed that is blocking the IPN requests
  • Your website cannot make remote requests through cURL
  • You have rules in your .htaccess file that block the IPN requests
  • Your site has too aggressive caching that results in improper update queries
  • You need HTTPS (SSL) if you are using PayPal

Configuring PayPal

For orders to work properly, your PayPal account needs to be connected. Without it configured payments will not get set to Complete. Confirm PayPal is configured per the documentation.

Prior to EDD 2.11, for orders to work properly, IPN needs to be configured for PayPal Standard and PayPal Express gateways. Without it configured payments will not get set to Complete. Configuring IPN is slightly different for PayPal Standard and PayPal Express, see the guide for the version you are using:

PayPal (Legacy)

CloudFlare

CloudFlare is a popular service that helps improve the performance and security of your website. Occasionally it can cause conflicts with the purchase verification process.

If you are experiencing problems with your payments not being marked as complete and you use CloudFlare on your website, try disabling CloudFlare temporarily to see if payments are properly marked as complete when it is disabled.

You may need to exclude your checkout page from Cloudflare’s caching. Here is one of their help articles to get you started with that:
https://support.cloudflare.com/hc/en-us/articles/200172316-How-do-I-exclude-a-specific-URL-from-CloudFlare-s-caching-

Remote requests fail: cURL Disabled

If your web host has cURL and/or other remote communication extensions disabled, it can cause trouble with Easy Digital Download’s ability to communicate with PayPal.

You can confirm whether this is the potential cause by going to Downloads > System Info and looking for this section:

WP Remote Post: wp_remote_post() works

If it says that wp_remote_post() does not work, please contact your web host and ask them to enable cURL.

You can further confirm whether this is the problem by going to Downloads > Reports > Logs > Payment Errors and looking to see if there are any error messages recorded that look like this:

{"errors":{"http_failure":["There are no HTTP transports available which can complete the requested request."]},"error_data":[]}

That error means your site cannot communicate with PayPal, so payments cannot be verified.

Conflicting Plugins

If the PayPal IPN is fully functional, to the best of your knowledge, and the problem still persists, it is very likely that you have another plugin, such as  Bad Behavior, installed that is blocking the PayPal IPN. These kind of anti-spam plugins typically block PayPal communication. If you do have one of these plugins installed, try deactivating it, do a test purchase, and then see if your payment is marked as complete.

Plugins that have been known to cause issues:

  • All-In-One Security
  • Bad Behavior
  • Complete Cache
  • iThemes Security
  • Wordfence Security
  • W3 Total Cache
  • WP Super Cache
  • WP-SpamShield

If you have one of these plugins activated, try deactivating it and then perform a test purchase. If payments are marked as complete once the plugin is deactivated, you will know what the cause is.

Just because you have one of these plugins installed does not, however, mean that you are guaranteed to experience problems. All of these plugins can be configured successfully to work just fine alongside Easy Digital Downloads. Usually, the problem is a result of one or two particular configuration options within the plugin.

Server Blocking

Occasionally a server setting can block the IPN response.  Here are some known issues,

Strato

Strato is a German host and has a guestbook security setting that interferes with PayPal. Here’s how to turn that setting off:

  1. Log in to Strato Customer Service.
  2. Choose hosting package change.
  3. Select the Settings item.
  4. Select Point Server Side Security.
  5. Disable the item ‘filter for guestbook spam’.

Cross Domain HTTP Requests

If you have a plugin that forces HTTP traffic to HTTPS and the IPN request comes in on HTTP it’ll be rejected since those are technically different domains. If you’re finding your IPN requests being rejected, make sure you’re running the same protocol on all requests.