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
Frequently Asked Questions
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: