Automatically change the status of orders to completed after successful payment
WooCommerce can be configured to automatically complete virtual-downloadable orders after successful payment, but what if you’re selling a regular or virtual (non-downloadable) product? You can either manually change each order’s status to completed, or use this extension to automatically change the order status to completed after successful payment. This can be a real timesaver! All it takes is 1 minute to setup and you never have to worry about changing order statuses again.
How to Get Started
- Purchase and download the extension
- Upload and install into your WooCommerce store
- Go to WooCommerce > Settings > General, and scroll down to Order Status Control
- Choose either All Orders to change the order status to “completed” after successful payment for all orders, or Virtual Orders to change the order status only for orders that contain all virtual products
- That’s it! Sit back and enjoy automated order statuses!
Frequently Asked Questions
Q: Are free products (or if a coupon is present that reduces the order total to $0) also completed automatically?
A: Yes, the extension will also automatically complete free orders.
Q: What versions of WooCommerce is this compatible with?
A: This extension is compatible with WooCommerce v1.6.6 – v2.0.13
Q: I am using PayPal and my orders are not being automatically completed even though I’ve configured “All Orders” to autocomplete. What gives?
A: First a bit of background on the standard PayPal gateway: the way that paypal functions is by taking the customer off-site to PayPal, they provide their info to make the purchase, and then return to your site for receipt if desired. In the background the PayPal server initiates a request back to your server (the IPN or Instant Payment Notification) to securely notify WooCommerce that the purchase has been paid for. This is the best way to automatically guarantee that payment has been made and that the customer is entitled to your product, and avoid having a customer “steal” your product. (See PayPal’s IPN documentation for additional more in-depth information)
The most common perceived issue with the Order Status Control plugin when PayPal is being used, is a failure of the shop to receive the IPN request, which is needed to automatically mark the order as “paid”. You can determine whether this is the issue for your shop if the following conditions apply:
1. Your orders remain in a “pending” state after payment with paypal. (See WooCommerce Managing Orders for an explanation of order status and meanings).
2. You do not see an order note that reads “IPN Payment Complete” on the PayPal orders, as shown below:
This indicates that your shop is failing to receive, or is rejecting the IPN request from PayPal servers, so the order is never marked as “paid” (even if the customer really did provide payment). Without that the Order Status Control plugin will not be able to mark the order as complete (for obvious reasons our plugin can’t mark an order as completed that hasn’t been verified to be paid as that could lead to potential fulfillment of non-paid orders).
The solution to all this is to determine why the IPN is failing or being rejected. A first likely possibility is that your HTTP server is configured incorrectly and is rejecting the IPN from PayPal. You can verify this by performing a test PayPal transaction and watching your HTTP server access/error logs for the request from PayPal. Unfortunately every hosting environment is configured differently and it’s impossible to provide a single solution here, you’ll need to get in touch with your hosting provider or server manager to determine and fix the underlying issue. WooCommerce themselves has an article on using PayPal with an extensive section on debugging IPN issues.
Looking for support for this extension? Fill out our Support Form.
Have questions before purchasing? Simply fill out our Pre-Sales form and we'll be happy to answer your question :)