When someone places an order on a WooCommerce site, unless it's a virtual- downloadable product, the order never automatically completes.
The most accurate, effective and lightweight solution (For WooCommerce 3 and above) - 2019. This filter hook is located in: WC_Order Class ...
Automatically set the WooCommerce order status as Completed based on payment method
WooCommerce: Automatically Complete Processing Orders. > Published: Dec 2019 > Blog Category: WooCommerce Tips > Blog Tags: Order Status
There are two main ways to autocomplete orders in WooCommerce:
to auto-complete other orders (such as virtual orders, or all paid orders) instead if
required — Awaiting action by the customer to authenticate the transaction and/or complete SCA requirements.
It has the option to automatically mark paid orders as “complete” instead of
This makes sense a lot of sense for virtual/downloadable products where you don't need to manually approve the order. For physical products ...
break; } else { $virtual_order = true; } } } } // if all are virtual products, mark as ...