Some PAYPAL payments get stuck “PENDING”
-
Hello,
I have set an ecommerce shop for our NGO. We have found a concerning issue with our paypal gateway.
In Woocommerce, about 30% of orders get stuck in a “PENDING” state, the order is created in the orders list but remains in this state forever, there is no note in the order page. Also, they will never go into “FAILED” state (we waited 4 days and nothing happened).
After checking in our Paypal, there is also no trace of any payment for those oders.
Other orders which get tagged as “Processing” are marked with a note “payment completed”, and we can see the payment in Paypal.
What is going on for those orders that get stuck in PENDING state with no payment on paypal side? Why don’t they switch to failed state? Very strange…
Thank you
-
Hi @astrix –
Is it possible these are abandoned orders in which the customers cancel out after they are directed to PayPal to process their payment?
If you go to WooCommerce > Settings > Payments > PayPal (whichever version you are using), you should have an option to enable logging. I would recommend you do this and then watch for it to happen again. Then you’ll be able to check the logs to see what caused the payment to fail. Feel free to post the logs here if you’d like (just be sure to redact any customer information).
Hello @m155y5 , thank you for your help,
I activated logging and will wait for new activity to show up.
Shouldn’t abandonned orders after redirection to paypal gateway be marked as “FAILED” after some time (user defined or not) ?
I’m quite new to Woocommerce but this would help figure out what is wrong in a clearer way, maybe?
Thank you
-
This reply was modified 4 years, 3 months ago by
Astrix.
Hi @astrix –
Usually, abandoned orders are created as
Pending Payment
and then they get canceled after a certain period of time which you can set in Hold stock (minutes) in WooCommerce > Settings > Products > Inventory. Could that be what is happening, possibly?Hello @m155y5,
Thank you for helping,
Stock is deactivated for our shop! Maybe it’s a Woocommerce bug which will keep “Pending payment” status forever when stock is deactivated? Because when deactivated, we don’t have the “Hold stock” timer setting!
I can confirm that we have “Pending payment” (by Paypal) orders still in this state after 1 full week (7 days).
Hi @astrix –
I don’t believe there is a bug of this nature as it would effect a significant number of sites if so.
If you can please share your System Status Report, that will help us further troubleshoot. You can find it via WooCommerce > Status. Select “Get system report” and then “Copy for support”. Once you’ve done that, you can paste it into your reply here.
Thank you @m155y5
Here is a screenshot of all pending orders, all stuck in this state. (all paypal payments)(no payment showing up in paypal).
And Woocommerce does not switch them to failed…Please note that it is not a paypal issue because 80% of orders via Paypal are successfully going to “processing” status.
See screen shot : Pending payments
Here it is, there are some french inside because it is a french wordpress install
### WordPress Environment ### WordPress address (URL): https://www.xxx.com Site address (URL): https://www.xxx.com WC Version: 4.7.1 REST API Version: ? 4.7.1 WC Blocks Version: ? 3.6.0 Action Scheduler Version: ? 3.1.6 WC Admin Version: ? 1.6.3 Log Directory Writable: ? WP Version: ? 5.5.3 - Une nouvelle version de WordPress est disponible (5.6) WP Multisite: – WP Memory Limit: 512 Mo WP Debug Mode: – WP Cron: ? Language: fr_FR External object cache: – ### Server Environment ### Server Info: Apache PHP Version: 7.3.20 PHP Post Max Size: 384 Mo PHP Time Limit: 165 PHP Max Input Vars: 16000 cURL Version: 7.38.0 OpenSSL/1.0.1t SUHOSIN Installed: – MySQL Version: 5.6.50-log Max Upload Size: 384 Mo Default Timezone is UTC: ? fsockopen/cURL: ? SoapClient: ? DOMDocument: ? GZip: ? Multibyte String: ? Remote Post: ? Remote Get: ? ### Database ### WC Database Version: 4.7.1 WC Database Prefix: xxxcom_ Taille totale de la base de données: 136.94MB Taille de la base de données: 123.35MB Taille de l’index: 13.59MB xxxcom_woocommerce_sessions: Données : 0.27MB + Index : 0.02MB + Moteur InnoDB xxxcom_woocommerce_api_keys: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB xxxcom_woocommerce_attribute_taxonomies: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB xxxcom_woocommerce_downloadable_product_permissions: Données : 0.02MB + Index : 0.06MB + Moteur InnoDB xxxcom_woocommerce_order_items: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB xxxcom_woocommerce_order_itemmeta: Données : 0.11MB + Index : 0.11MB + Moteur InnoDB xxxcom_woocommerce_tax_rates: Données : 0.02MB + Index : 0.06MB + Moteur InnoDB xxxcom_woocommerce_tax_rate_locations: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB xxxcom_woocommerce_shipping_zones: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB xxxcom_woocommerce_shipping_zone_locations: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB xxxcom_woocommerce_shipping_zone_methods: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB xxxcom_woocommerce_payment_tokens: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB xxxcom_woocommerce_payment_tokenmeta: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB xxxcom_woocommerce_log: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB xxxcom_actionscheduler_actions: Données : 0.11MB + Index : 0.11MB + Moteur InnoDB xxxcom_actionscheduler_claims: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB xxxcom_actionscheduler_groups: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB xxxcom_actionscheduler_logs: Données : 0.09MB + Index : 0.06MB + Moteur InnoDB xxxcom_cmeb_email_list: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB xxxcom_cmeb_free_domains: Données : 0.13MB + Index : 0.00MB + Moteur InnoDB xxxcom_cmeb_userlist: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB xxxcom_commentmeta: Données : 0.55MB + Index : 0.15MB + Moteur MyISAM xxxcom_comments: Données : 0.80MB + Index : 0.14MB + Moteur MyISAM xxxcom_give_donormeta: Données : 0.00MB + Index : 0.01MB + Moteur MyISAM xxxcom_give_donors: Données : 0.00MB + Index : 0.00MB + Moteur MyISAM xxxcom_give_formmeta: Données : 0.01MB + Index : 0.01MB + Moteur MyISAM xxxcom_give_logmeta: Données : 0.00MB + Index : 0.01MB + Moteur MyISAM xxxcom_give_logs: Données : 0.00MB + Index : 0.00MB + Moteur MyISAM xxxcom_give_paymentmeta: Données : 0.00MB + Index : 0.01MB + Moteur MyISAM xxxcom_give_sequential_ordering: Données : 0.00MB + Index : 0.00MB + Moteur MyISAM xxxcom_links: Données : 0.00MB + Index : 0.00MB + Moteur MyISAM xxxcom_options: Données : 10.53MB + Index : 0.12MB + Moteur MyISAM xxxcom_postmeta: Données : 48.67MB + Index : 8.00MB + Moteur MyISAM xxxcom_posts: Données : 50.85MB + Index : 2.13MB + Moteur MyISAM xxxcom_prli_clicks: Données : 0.00MB + Index : 0.04MB + Moteur MyISAM xxxcom_prli_groups: Données : 0.00MB + Index : 0.00MB + Moteur MyISAM xxxcom_prli_links: Données : 0.00MB + Index : 0.03MB + Moteur MyISAM xxxcom_prli_link_metas: Données : 0.00MB + Index : 0.01MB + Moteur MyISAM xxxcom_sbi_instagram_feeds_posts: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB xxxcom_sbi_instagram_posts: Données : 0.11MB + Index : 0.00MB + Moteur InnoDB xxxcom_termmeta: Données : 0.00MB + Index : 0.01MB + Moteur MyISAM xxxcom_terms: Données : 0.01MB + Index : 0.03MB + Moteur MyISAM xxxcom_term_relationships: Données : 0.16MB + Index : 0.35MB + Moteur MyISAM xxxcom_term_taxonomy: Données : 0.01MB + Index : 0.01MB + Moteur MyISAM xxxcom_usermeta: Données : 0.04MB + Index : 0.03MB + Moteur MyISAM xxxcom_users: Données : 0.00MB + Index : 0.01MB + Moteur MyISAM xxxcom_wc_admin_notes: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB xxxcom_wc_admin_note_actions: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB xxxcom_wc_category_lookup: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB xxxcom_wc_customer_lookup: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB xxxcom_wc_download_log: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB xxxcom_wc_order_coupon_lookup: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB xxxcom_wc_order_product_lookup: Données : 0.02MB + Index : 0.06MB + Moteur InnoDB xxxcom_wc_order_stats: Données : 0.02MB + Index : 0.05MB + Moteur InnoDB xxxcom_wc_order_tax_lookup: Données : 0.02MB + Index : 0.03MB + Moteur InnoDB xxxcom_wc_product_meta_lookup: Données : 0.02MB + Index : 0.09MB + Moteur InnoDB xxxcom_wc_reserved_stock: Données : 0.02MB + Index : 0.00MB + Moteur InnoDB xxxcom_wc_tax_rate_classes: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB xxxcom_wc_webhooks: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB xxxcom_wp_quiz_play_data: Données : 6.52MB + Index : 0.09MB + Moteur InnoDB xxxcom_yoast_indexable: Données : 2.52MB + Index : 0.75MB + Moteur InnoDB xxxcom_yoast_indexable_hierarchy: Données : 0.02MB + Index : 0.05MB + Moteur InnoDB xxxcom_yoast_migrations: Données : 0.02MB + Index : 0.02MB + Moteur InnoDB xxxcom_yoast_primary_term: Données : 0.09MB + Index : 0.09MB + Moteur InnoDB xxxcom_yoast_seo_links: Données : 1.07MB + Index : 0.37MB + Moteur MyISAM xxxcom_yoast_seo_meta: Données : 0.06MB + Index : 0.06MB + Moteur MyISAM ### Post Type Counts ### attachment: 3266 customize_changeset: 19 custom_css: 1 flamingo_contact: 2913 flamingo_inbound: 4659 forum: 3 give_forms: 1 give_payment: 2 gs-logo-slider: 3 jetpack_migration: 2 lcg_mainpost: 17 lcg_shortcode: 1 logoshowcase: 3 logosliderwp: 3 nav_menu_item: 88 oembed_cache: 468 page: 81 post: 1453 post_type_questionna: 1 pretty-link: 2 product: 2 product_variation: 2 responsive_accordion: 1 revision: 6027 shop_order: 61 smartlogo: 1 swpm_payment_button: 1 tdb_templates: 5 tribe_events: 1 tribe_venue: 1 wcp_ruleset: 1 wpcf7r_action: 3 wpcf7_contact_form: 8 wp_quiz: 1 ### Security ### Secure connection (HTTPS): ? Hide errors from visitors: ? ### Active Plugins (26) ### Akismet Anti-Spam: par Automattic – 4.1.7 Automatic NBSP: par Damian Góra – 1.5.4 Contact Form 7 Conditional Fields: par Jules Colle – 1.9.14 Conditional Payments for WooCommerce: par Lauri Karisola / WooElements.com – 2.2.2 Contact Form 7: par Takayuki Miyoshi – 5.3.1 Content Control: par Code Atlantic – 1.1.4 Email Address Encoder: par Till Krüss – 1.0.22 Insert Headers and Footers: par WPBeginner – 1.4.6 Smash Balloon Instagram Feed: par Smash Balloon – 2.5.4 Jetpack par WordPress.com: par Automattic – 9.2 Logo Showcase Ultimate: par AazzTech – 1.1.2 Menu Icons: par ThemeIsle – 0.12.5 Responsive Accordion And Collapse: par wpshopmart – 2.2.1 TablePress: par Tobias B?thge – 1.12 tagDiv Cloud Library: par tagDiv – 1.6 | built on 08.12.2020 7:01 tagDiv Composer: par tagDiv – 2.7 | built on 08.12.2020 7:01 tagDiv Social Counter: par tagDiv – 4.8 | built on 08.12.2020 13:30 tagDiv Standard Pack: par tagDiv – 1.1 | built on 08.12.2020 7:01 GDPR Cookie Consent Banner: par termly – 2.3.15 Advanced Order Export For WooCommerce: par AlgolPlus – 3.1.7 WooCommerce Shipping & Tax: par Automattic – 1.25.3 (une mise à jour de la version 1.25.4 est disponible) – La version installée n’a pas été testée avec la version en cours de WooCommerce 4.7.1 WooCommerce: par Automattic – 4.7.1 (une mise à jour de la version 4.8.0 est disponible) Yoast SEO: par L’équipe Yoast – 15.4 WP Fastest Cache: par Emre Vona – 0.9.1.3 WP Quiz: par MyThemeShop – 2.0.6 Redirection for Contact Form 7: par Query Solutions – 2.3.0 ### Inactive Plugins (1) ### Velvet Blues Update URLs: par VelvetBlues.com – 3.2.10 ### Settings ### API Enabled: – Force SSL: – Currency: EUR (€) Currency Position: right_space Thousand Separator: . Decimal Separator: , Number of Decimals: 2 Taxonomies: Product Types: external (external) grouped (grouped) simple (simple) variable (variable) Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog) exclude-from-search (exclude-from-search) featured (featured) outofstock (outofstock) rated-1 (rated-1) rated-2 (rated-2) rated-3 (rated-3) rated-4 (rated-4) rated-5 (rated-5) Connected to WooCommerce.com: – ### WC Pages ### Base de la boutique: #29946 - /boutique Panier: #29947 - /panier Commander: #29948 - /commander Mon compte: #4402 - /mon-compte Conditions générales de vente et d’utilisation: ? Page non définie ### Theme ### Name: Newspaper Version: 10.3.9 Author URL: https://themeforest.net/user/tagDiv/portfolio Child Theme: ? – Si vous modifiez WooCommerce sur un thème parent que vous n’avez pas construit personnellement nous vous recommandons d’utiliser un thème enfant. Voir : Comment créer un thème enfant WooCommerce Support: ? ### Templates ### Overrides: Newspaper/woocommerce/archive-product.php Newspaper/woocommerce/single-product.php ### Action Scheduler ### Annulé: 1 Oldest: 2020-12-08 15:23:14 +0100 Newest: 2020-12-08 15:23:14 +0100 Terminé: 300 Oldest: 2020-11-25 16:37:29 +0100 Newest: 2020-12-12 02:36:58 +0100
Hi @astrix –
Thanks for sharing the additional information, it is helpful!
A few follow-up questions:
- Which PayPal gateway are you using? I don’t see a PayPal plugin on your system report, so I’m assuming it’s the PayPal Standard option that is part of WooCommerce core.
- The conditional payments plugin you are using – is there a chance it’s interfering with some of these orders?
- Have you been able to log any information after enabling PayPal’s debug log? You should be able to see any available logs via WooCommerce > Status > Logs
Hello @m155y5, I have logs ready to be shared (this order is still in the “pending payment” state” and no payment in paypal was made):
2020-12-20T10:42:35+00:00 INFO Generating payment form for order 30362. Notify URL: https://www.xxx.org/wc-api/WC_Gateway_Paypal/
2020-12-20T10:42:35+00:00 INFO PayPal Request Args for order 30362: Array
(
[cmd] => _cart
[business] => [email protected]
[no_note] => 1
[currency_code] => EUR
[charset] => utf-8
[rm] => 2
[upload] => 1
[return] => https://www.xxx.org/commander/order-received/30362?key=wc_order_icwmZRATqm8nu&utm_nooverride=1
[cancel_return] => https://www.xxx.org/panier/?cancel_order=true&order=wc_order_icwmZRATqm8nu&order_id=30362&redirect&_wpnonce=0cbacefd79
[page_style] =>
[image_url] =>
[paymentaction] => sale
[invoice] => 30362
[custom] => {“order_id”:30362,”order_key”:”wc_order_icwmZRATqm8nu”}
[notify_url] => https://www.xxx.org/wc-api/WC_Gateway_Paypal/
[first_name] => ***
[last_name] => ***
[address1] => ***
[address2] => ***
[city] => ***
[state] => ***
[zip] => ***
[country] => ***
[email] => ***@***
[night_phone_a] => ***
[night_phone_b] => ***
[no_shipping] => 1
[item_name_1] => xxx x 1
[quantity_1] => 1
[amount_1] => 7.9
[item_number_1] => 30362
[bn] => WooThemes_Cart
)-
This reply was modified 4 years, 2 months ago by
Astrix.
Hi @astrix –
Thanks for sharing the log.
These are really looking like abandoned orders. Abandoned orders are created as Pending Payment and then they get canceled after a certain period of time that you’ve specified in your WooCommerce settings.
To test this out, you can try to check out in an incognito/private window and then abandon the order by canceling at PayPal or closing the window. You should be able to see the order show up in your WooCommerce dashboard in a pending status.
Thank you for your support @m155y5,
I will try this myself, you’re certainly right about them being abandonned orders.
However, as mentionned earlier in this thread, they will never go into canceled state. Our shop does not use stock in the settings, so there is no “Hold stock” setting available. So we can’t set any delay.
Could this be a missing feature in Woocommerce? Maybe your team can have a look on this! Also, it this helps: it happens for downloadable product and normal products too.
Thank you
Hi @astrix –
My apologies for the delayed response!
Most gateways will report back and set the order status to Processing (payment successful) or Failed (payment unsuccessful). If the shop never receives either signal, it keeps the status on Pending.
This tends to be a misconfiguration of payment notification URLs or a plugin conflict. I would recommend double-checking your IPN settings for PayPal and conducting a plugin conflict test (I’ll add instructions for that below).
Please let us know how it goes!
—–
Here’s how you can figure out which plugin may be causing a problem:Before you start
- First, please make sure you have a good backup in place of your full site and database. Most hosting companies have this included in the subscription, but you could also consider using a service like Jetpack. If something goes wrong, it’s nice to know that you can restore your site.
- Second, I would suggest to install a plugin called Health Check & Troubleshooting. This is a plugin developed by the WordPress community and it allows you to disable plugins without effecting your current site visitors.
How to test for conflicts
In order to test for conflicts using Health Check & Troubleshooting:- Go to Tools > Site Health > Troubleshooting.
- Select Enable Troubleshooting Mode. This will disable all your plugins and set your theme to a default one.
- Go to Plugins. There you can enable WooCommerce by selecting Enable While Troubleshooting.
- Try to reproduce the problem. If the problem is resolved, it’s clearly a conflict. Now we need to figure out which plugin is causing this conflict.
- If you can’t reproduce the problem with only WooCommerce enabled, go ahead and re-enable the other plugins one by one. Test after each one until the problem occurs again – this will tell you which plugin is conflicting.
- If you are unable to reproduce the problem with the rest of your plugins enabled it could be your theme causing the conflict. To test for this, please enable your original theme at your WordPress Dashboard in the Troubleshooting Mode section at the top (it will look similar to this: https://d.pr/i/bbvkLY). In the Troubleshooting window, you’ll be able to see a dropdown with available themes. Choose the one you normally use. Try reproducing the problem you’re experiencing. If you can reproduce it, your theme is the source of the conflict.
Once you’ve done that, please check out How to test for plugin and theme conflicts and follow the steps there. Please let us know how that goes.
-
This reply was modified 4 years, 2 months ago by
Missy a11n. Reason: Typos :)
Hi there ??
We’ve not heard back from you in a while, so I’m marking this thread as resolved.
Hopefully, you were able to find a solution to your problem! If you have further questions, please feel free to open a new topic.
-
This reply was modified 4 years, 3 months ago by
- The topic ‘Some PAYPAL payments get stuck “PENDING”’ is closed to new replies.