The WooCommerce Order Status Control extension gives you control over which types of paid orders should be automatically placed in Completed status.
By default, WooCommerce will only auto-complete paid orders for products that are both Virtual and Downloadable, assuming that the shop needs to fulfill/ship any orders that don’t meet these criteria. However, some shops want to automatically complete other types of orders, too. With Order Status Control, you can also choose to automatically complete:
- No orders, regardless of the ordered products
- All paid orders, regardless of the ordered products
- Paid orders for Virtual products, without requiring that these products also be marked Downloadable
Once an order set to auto-complete is paid, it will skip the Processing step and go directly to Completed status. This streamlines order administration for orders that don’t require any action between the Processing and Completed order stages.
- WooCommerce 2.6.14+
- A payment gateway that is capable of marking an order as paid. Click here to read more about supported payment gateways.
- Ensure your store meets the plugin requirements.
- Download the extension from your WooCommerce dashboard.
- Go to Plugins > Add New > Upload and select the ZIP file you just downloaded.
- Click Install Now and then Activate.
- Click Configure and read the next section to learn how to setup the plugin.
To setup Order Status Control, go to WooCommerce > Settings > General and update the Orders to Auto-Complete setting to determine which paid orders should skip the Processing status and go directly to Completed status:
- None: No orders will be automatically completed.
- All Orders: All paid orders, regardless of purchased products, will be automatically completed.
- Virtual Orders: Orders that contain only Virtual products will be automatically completed.
- Virtual & Downloadable Orders: Only paid orders for products that are both Virtual and Downloadable will be automatically completed (i.e. WooCommerce’s standard behavior). This is the plugin’s default setting, which ensures that simply activating the plugin won’t impact order completions until you manually update this setting.
When an order that meets your criteria is paid, it will automatically update to Completed status, which will be documented in the Order Notes:
Order Status Control will only complete paid orders, which requires the payment method to call
$order->payment_complete(). Most payment methods do this already – PayPal, credit cards, e-checks, and other online payment systems will all trigger auto-completion.
Orders that haven’t been paid won’t auto-complete, since shipments/access to products shouldn’t happen until payment is received. If your gateway doesn’t identify when an order has been paid, Order Status Control won’t automatically complete the order. As such, Order Status Control will not auto-complete orders with the following payment methods:
- Check Payments (WooCommerce core)
- Direct Bank Transfer / BACS (WooCommerce core)
- Cash on Delivery (WooCommerce core)
- Any gateways that defaults to On Hold or Pending Payment instead of Processing
Q: Are orders for free products (or orders made free by a coupon) completed automatically?
A: Yes, the extension will also automatically complete free orders!
Q: I’m using PayPal and my orders aren’t being automatically completed even though I’ve configured the plugin to auto-complete all orders. What gives?
A: PayPal functions by taking the customer off-site to PayPal, where they provide their info to make the purchase, and then returns the customer to your site for receipt if desired.
In the background, the PayPal server initiates a request to your server (the IPN or Instant Payment Notification) to securely notify WooCommerce that the customer has paid for the order. This is the best way to automatically guarantee that payment has been made and that the customer is entitled to your product. Click here to see PayPal’s IPN documentation for more detailed information.
When using Order Status Control with PayPal, the most common issue occurs when the shop fails to receive the IPN request, which is required to mark the order as paid. This might apply to your shop if:
- Your orders remain in a pending state after payment with PayPal. Click here to learn about WooCommerce order statuses and their meanings.
- You do not see an order note that reads “IPN Payment Complete” on the PayPal orders, as shown below:
These issues indicate that your shop is rejecting or isn’t receiving PayPal’s IPN request, so the order isn’t marked as paid even if the customer did complete the payment process. In these cases, Order Status Control can’t auto-complete the order, since the plugin won’t complete orders it doesn’t know are paid.
To correct this issue, you’ll need to determine why the IPN is failing or being rejected. One possibility is that your HTTP server is configured incorrectly and is rejecting the IPN from PayPal. To check this, perform a test PayPal transaction and watch your HTTP server access/error logs for the request from PayPal.
Unfortunately, since every hosting environment is configured differently, we can’t provide a single solution to correct this issue. We recommend contacting your hosting provider or server manager to identify and fix the underlying issue. Click here to read more about debugging IPN issues.
Q: I’m using PayPal and orders in my base currency are automatically completing, but why are my international orders (i.e. orders in a different currency) are placed in On Hold status?
A: Your PayPal account is probably not configured to automatically allow payments in other currencies. Click here to learn how to accept other currencies with PayPal.
If your orders aren’t auto-completing, please check out the following steps:
- Are you using a gateway that automatically pays for the order? Payment methods where payment isn’t received immediately (e.g. check payments) will place orders in On Hold status. This ensures customers can’t access to your virtual or downloadable products until you confirm that order is paid, since access is granted to those products upon order completion. Click here to read more about supported gateways.
- Are you using PayPal? If so, please confirm that PayPal’s IPN is working. If not, WooCommerce won’t know that the order is paid, and thus the order won’t be automatically completed. If you’re seeing issues with international orders placed via PayPal, please confirm that PayPal is setup to allow automatic payments in other currencies.
- Is your Orders to Auto-Complete setting set to “Virtual & Downloadable Orders”? If so, please confirm that all products in the order are marked as both Virtual and Downloadable (not just one or the other).
If you’ve checked for these issues, please submit a support ticket with site credentials and we’d be happy to troubleshoot!
Have a question before you buy? Please fill out this pre-sales form.