This post was last updated on January 8th, 2017 at 09:03 pm
You may experience this issue after upgrading to WooCommerce (ver. 2.0+), purchased order using PayPal payment never get complete, in fact, all purchased order status goes to “Cancelled” and in the admin area those orders showed up as cancelled with the message “Unpaid order cancelled – time limit reached”. This is very annoying, because you have to go to order list and manually change the status.
This problem is due to WooCommerce Inventory feature. WooCommerce by default will cancel orders that remain in pending status for an hour.
To resolve this go to the back-end of WordPress dashboard and navigate to the
“WooCommerce > Settings > Products > Inventory”.
The important item here is the Hold Stock (minutes) “60” minute interval, that is set default by WooCommerce for inventory Stock Management.
IF you are using Stock management for any reason, and has that item enabled (Manage Stock), simply delete the value (“60” or any other value) from the (Hold stock (minutes) field. This will ensure there is no timeout if PayPal (any other payment gateway like Stripe) tries to process the payment automatically. Even though the order should be processed within a minute or two. PayPal and WooCommerce do NOT play nicely with each other if “Hold Stock (minutes)” field has a value in it. So, simply leave it blank.
5 Comments
You can post comments in this post.
I’ve had the same issue and i tried the solution you have above. My orders now just stay at pending payment. Do you have any idea why my the payments aren’t going through?
Thank you in advance.
Christopher Ford 8 years ago
Have you checked the order status in the backend? If the order status in the backend is pending too, it means WooCommerce (check system status for any error) is not getting the response from PayPal (issues with IPN communication).
In that case, you may need to contact your hosting provider for SSL update. More details at www.paypal.com/au/we…tp-upgrade
P. Roy 8 years ago
It works for me.
Thanks for posting nice piece of code.
Arun 7 years ago
Thank you for all the information you have shared. very useful for me
RIDWAN FAUZI 5 years ago
Question so I have an issue where customers are trying to order the same products all at the same time after we post them to a forum for a live sale. I’m currently set to 1 min for hold time, and customers are able to checkout backordering products that are only normally available with 1 stock. If I were to set to blank, would this help my current problem? I’m basically trying to reduce any chance of a wysiwig (what you see is what you get) product.
Remy Medranda 5 years ago
Leave A Reply