• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
WP Desk = premium plugins for WordPress & WooCommerce
  • Plugins
        • Checkout & OrdersMake your work easier and automate the orders. Adjust the order form to your needs and make it more useful to your customers. Print order labels directly from WooCommerce. Put the orders in order using our plugins. Find out how to streamline the procurement process in your store.
          • Flexible Checkout Fields
          • Active Payments
          • Automatic Payment Status
          • Flexible Refund and Return Order
          • Print Orders and Address Labels
          • Flexible Subscriptions Recurring Shipping
          • Flexible Subscriptions Payment Retry
          • Flexible Subscriptions Stock Management
        • ProductsThese plugins will help you manage your WooCommerce products. Here you will find the plugins to import and update products from XML or CSV files. Then you can change the product unit of measure, show the lowest price in the last 30 days (Omnibus Directive), or let customers name the product price!
          • Flexible Product Fields
          • Dropshipping Import Products
          • Dropshipping FTP Import Products
          • Dropshipping Export Products
          • Custom Price
          • WP Desk Omnibus
          • Flexible Quantity Calculator
          • Dropshipping Orders Export
        • MarketingPromote your store online. Add products from your shop to price comparison websites directly from WooCommerce. Acquire new customers and communicate with your existing ones. Build a customer base and communicate with clients using one of the most effective marketing tools, namely e-mail marketing. Check out our promotional tools!
          • Flexible Pricing
          • Flexible Wishlist - Analytics & Emails
          • OLX WooCommerce
          • Flexible PDF Coupons
          • ShopMagic
          • Flexible Invoices
  • Bundle🔥
  • WP Desk Care
  • Support
  • Blog
  • My Account
  • 0

More results

Change WooCommerce order status using woocommerce_payment_complete hook

WooCommerce order status, WooCommerce tutorials

Piotr Ostrowski3 minutes readUpdated: 2022-03-02Updated: 2025-08-20
blog category heading image

By default, clean WooCommerce installation will change order status to Processing after successful payment. This is very useful for physical orders. Thanks to this behavior, the customers know the shop staff is working on the order. As the customer sees that the order is paid and being processed, he knows the staff is preparing the shipment packing the products. You can extend this scenario for all orders by using woocommerce_payment_complete hook or a plugin. Learn how to change order status after payment to Completed.

💡 Small tip: You can avoid the woocommerce_payment_complete hook and go straight to installing the plugin.

Just leaving you a link to it:

Automatic Payment Status →
All of the solutions presented below will work with any payment gateway (standard, built-in or custom, added using a plugin).

Contents

  • Default WooCommerce behavior for order status change
  • Change WooCommerce order status to Completed after payment using a filter - woocommerce_payment_complete
    • How to add this PHP code to your WooCommerce site?
  • Automatically change WooCommerce order status to Completed after payment using a plugin
  • Use a woocommerce_order_status_completed filter to execute an action after completing WooCommerce order
  • Summary
    • Related Articles
  • WooCommerce order status control
  • Some tips about managing WooCommerce orders
  • How to change the WooCommerce shop page (options & customization)
  • WooCommerce Conditional Shipping and Payments - Complete Tutorial
  • WooCommerce Checkout - Settings, Shortcode & Configuration Guide

Default WooCommerce behavior for order status change

The only exception is when the items in the cart are Downloadable. If so, the order status will always change to Completed after successful payment.

Change the WooCommerce order status to completed after successful payment for orders with all downloadable items
WooCommerce products should set as Downloadable & Virtual to automatically set the status to Completed after payment

This is also very convenient. In most cases, the store staff does not need to take any extra actions when the customer buys downloadable products. So it is a good idea to automatically change the order status to Completed.

How WooCommerce changes the order status after the successful payment for orders with downloadable and physical products
WooCommerce will change the order status to Processing or Completed after payment, depending on the cart itmes
Read more about WooCommerce order statuses ➡️

Change WooCommerce order status to Completed after payment using a filter - woocommerce_payment_complete

After the successful payment, the woocommerce_payment_complete hook is fired. So you can use it to programmatically change every order’s status to Completed after payment.

Please add this PHP snippet to your WordPress / WooCommerce site:

How to add this PHP code to your WooCommerce site?

You can simply edit functions.php file of your theme and add the filter containing woocommerce_payment_complete hook. But please beware that you will lose the changes if you update your theme to the latest version.

One of the recommended solutions is to use a custom plugin and insert the code inside the plugin file. Using the custom plugin for adding the code you can be sure that changes won’t be lost and you will have full control over the code and will be able to turn it on / off.

Automatically change WooCommerce order status to Completed after payment using a plugin

Automatic Payment Status is a small yet very powerful WooCommerce plugin. It allows you to automatically change order statuses to Completed once you receive the payment.

WooCommerce auto complete orders plugin to automatically complete orders in an online store

The settings allow choosing which orders justify automatic changes in the status:

  • no changes - the plugin won’t interfere with standard WooCommerce behavior
  • for orders with at least one virtual product - the plugin will check the contents of every order and change its status to Completed after payment only if there is at least one virtual product in the cart
  • for orders with virtual products only - if there’s at least one physical item in the order, the standard WooCommerce behavior won’t be changed. If there are only virtual products, the order status will be changed to Completed after the payment.
  • for all orders - all orders’ statuses will be changed to Completed after successful payment

Here's a quick video that will guide you through the plugin settings:

This plugin is available at WP Desk store

Use a woocommerce_order_status_completed filter to execute an action after completing WooCommerce order

The woocommerce_order_status_completed hook is fired after setting the order status to Completed. So it will work perfectly with the Automatic Payment Status plugin! Use this hook to execute some action after completing a WooCommerce order. You can use the example below:

As you see from the code, your customer user role will be changed to VIP Member once the order is completed:

woocommerce_order_status_completed hook example to automatically change WooCommerce order status programmatically based on user roles

Summary

Well, so from my WooCommerce guide, you have learned how to use both woocommerce_payment_complete and woocommerce_order_status_completed. I hope you can use my examples for creating your own automations in your shop.

Please remember that you can also use a quick and simple Automatic Payment Status plugin to change the order status to Completed after payment.

In this article, you've learned a few things about:

  • woocommerce_payment_complete hook
  • woocommerce_order_status_completed hook
  • woocommerce change order status programmatically

If you have any further questions, leave a comment below or contact us.

Related Articles

WooCommerce order status control

WooCommerce order status control

Choosing the conditions for the order completion is possible in the Automatic Payment Status WooCommerce plugin. Let’s have a look at the advanced Woo...
Tips about managing WooCommerce orders

Some tips about managing WooCommerce orders

Having an online store is not just about completed orders and shipping purchased goods. In addition to completed orders, it is worth remembering cance...
How to change the WooCommerce shop page (options and customization)

How to change the WooCommerce shop page (options & customization)

Being one of the standard WooCommerce pages, the shop page can come with additional settings. In this article, you may read about the WooCommerce shop...
WooCommerce Conditional Shipping and Payments

WooCommerce Conditional Shipping and Payments - Complete Tutorial

Today, you will read how to set WooCommerce shipping & payment methods. You will also see how to use conditional shipping and payments in WooCommerce ...
woocommerce_checkout shortcode and WooCommerce checkout settings

WooCommerce Checkout - Settings, Shortcode & Configuration Guide

WooCommerce checkout features - which are mostly related to payment settings - play a vital role in running an online store. It's often thanks to them...

3 minutes read47840 views

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Piotr Ostrowski

...

Powered by WP Desk

WP Desk brings you great WooCommerce plugins. We strive to save your time and money by speeding up your processes. Use our plugins to build a better store. Awesome support included in the package.

Premium WooCommerce Plugins →
WP Desk › Blog › WooCommerce tutorials › Change WooCommerce order status using woocommerce_payment_complete hook

Primary Sidebar

Contents

  • Default WooCommerce behavior for order status change
  • Change WooCommerce order status to Completed after payment using a filter – woocommerce_payment_complete
    • How to add this PHP code to your WooCommerce site?
  • Automatically change WooCommerce order status to Completed after payment using a plugin
  • Use a woocommerce_order_status_completed filter to execute an action after completing WooCommerce order
  • Summary

Automatic Payment Status WooCommerce $39

Automatically change WooCommerce order status when the conditions you specify are met. Specify conditional logic for product, product type, category, and payment gateway.

💾 Active Installations: 8000+ | 🔄 Last update: 2026-08-19

Add to cart or View Details
WP Desk
Plugins used by 239,857+ shops
Last Updated: 2026-08-19
Works with WooCommerce 10.7 - 11.1

Stay updated on our how-to articles

WP Desk news, WooCommerce tips, promo codes - right to your inbox.

By entering your e-mail, you agree to our Terms & Conditions and Privacy Policy.

By entering your e-mail, you agree to our Terms & Conditions and Privacy Policy.

Footer

WP Desk - WooCommerce Plugins

At WP Desk we create great WooCommerce plugins with awesome support. Save time and money with our e-commerce solutions. See how we can help you improve your e-store →

Secured by Comodo

WP Desk

  • About us
  • Giving Back
  • Blog
  • Get Support
  • Contact us

Products

  • Premium Plugins
  • WP Desk Care
  • Documentation
  • WooCommerce Invoices
  • Email Marketing
  • PDF Coupons

Legal

  • Terms & Conditions
  • Refund Policy
  • Support Policy
  • Privacy Policy

© 2026 WP Desk

We value your privacy

We use necessary cookies to make our site work. We'd also like to set additional cookies to understand site usage, enhance your browsing experience, and serve personalized ads or content. By clicking ‘Accept All,’ you consent to our use of additional cookies.

Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
  • Manage options
  • Manage services
  • Manage {vendor_count} vendors
  • Read more about these purposes
View preferences
  • {title}
  • {title}
  • {title}