WooCommerce automatically completes orders for virtual-downloadable products after successful payment, but it won’t autocomplete other orders, as you may need to take actions between when the order is processed and completed. If you sell shippable products, you probably need to ship them before completing the order. If you sell virtual products like services, you probably have to do something between when the order is paid and completed.
However, this isn’t the case for all stores, and you may not need to take any action between when an order is paid for and completed. For example, you may want to auto-complete virtual orders, or even those with products that aren’t virtual or downloadable. Likewise, you may not want any orders to automatically complete at all.
In this case, you can use the WooCommerce Order Status Control extension to get greater control over when paid orders are automatically completed.
Want to completely prevent orders from automatically completing? You can use this plugin to block virtual + downloadable orders from going right to “completed”.
Need to automatically complete more orders than WooCommerce does by default? You can do that, too. Normally, orders with successful payment are updated from ‘pending’ to ‘processing’. Once the order is processed, you have to manually complete it. If your shop takes a large number of orders that don’t require action while the order is processing, updating the order status to complete for each of those orders is a time commitment that you can instead streamline.
WooCommerce Order Status Control can automatically mark paid orders as ‘complete’ instead of ‘processing’, completing skipping the ‘processing’ status. All it takes is 1 minute to setup and you never have to worry about changing order statuses for paid orders again.
You can automatically complete paid orders that only contain virtual items, or you can opt to automatically complete all paid orders in your shop, regardless of what type of product the order contains.