Skip to content
GPLWP Guides

How to automate payment status updates in WooCommerce

WooCommerce Time About 30 minutes 6 steps Updated 8 Nov 2026

WOOCOMMERCE
The short answer

WooCommerce payment gateways normally update order statuses automatically through return URLs, callbacks, or webhooks. Configure the gateway first, then check emails and logs. If you need consistent rules across several gateways or are losing time to manual updates, use a payment-status automation plugin.

The route
  1. 01Map your payment statuses
  2. 02Configure the payment gateway
  3. 03Use the manual route when suitable
  4. 04Check customer email notifications
  5. 05Test the confirmation path
  6. 06Choose the fast automation route

What you need

  • A WooCommerce store with an active payment gateway
  • Administrator access to WordPress and the payment gateway account
  • A staging site or test payment method
  • Access to WooCommerce logs

Map your payment statuses

Decide what each status should mean for your shop. Pending payment means payment has not been confirmed, On hold means confirmation is still required, Processing means payment has been received and the order is awaiting fulfilment, and Failed means the payment was declined or unsuccessful. WooCommerce uses these statuses as part of its normal order flow.

Do not mark an order as Processing or Completed just because a customer reaches a return page. The gateway’s confirmed transaction result should be what changes the order.

Configure the payment gateway

Open the settings for the payment gateway that processes the order and enable its normal payment confirmation method. Depending on the gateway, this may be a webhook, callback, instant payment notification, or server-to-server confirmation. The exact screen and event names vary, so follow that gateway’s current WooCommerce instructions rather than copying settings from another gateway.

For custom gateways, the confirmed-payment handler should let WooCommerce complete the payment rather than directly forcing a status. WooCommerce’s developer guidance recommends using the order payment-completion method for successful payments, while failed and awaiting-confirmation transactions should use the matching order status.

Use the manual route when suitable

Manual updates are fine for bank transfers, cheques, cash on delivery, or a low order volume. Go to WooCommerce > Orders, open the order, check the payment in your gateway or bank account, and change the status to On hold while confirmation is pending or Processing after payment is verified. WooCommerce documents On hold as the usual state for payment methods that need manual confirmation.

The drawback is that this depends on someone checking payments and changing every order correctly. It is also easy to ship an order before a delayed payment clears, or to leave a genuinely paid order stuck at Pending payment. Manual status changes do not fix a broken gateway callback.

Check customer email notifications

Go to WooCommerce > Settings > Emails and enable the notifications that match your workflow, such as Processing order, Order on-hold, Failed order, and Completed order. WooCommerce sends these emails when the relevant status transition occurs, so an order that never leaves Pending payment will not trigger the normal paid-order email.

Send a test order and confirm both the status change and the email delivery. If the status is correct but the message is missing, inspect the transactional email log before changing the payment settings.

Test the confirmation path

Use the gateway’s test or sandbox mode where available. Test a successful payment, a declined payment, an abandoned checkout, and any delayed payment method you offer. Confirm that the order reaches the intended status, stock behaves correctly, and the right email is sent.

If a successful payment remains Pending payment, treat it as a gateway communication problem first. Check WooCommerce > Status > Logs, the order notes, and the gateway’s webhook or callback delivery records. WooCommerce notes that incorrect notification URLs, plugin conflicts, fatal errors, and gateway communication failures can all prevent a status update.

Choose the fast automation route

If you use several gateways, delayed payment methods, or custom payment rules, install a payment-status automation plugin instead of maintaining manual checks and separate custom code. WooCommerce Automatic Payment Status is designed to automate gateway-based status changes, customer notifications, and status-change logging from the WordPress dashboard.

After activation, configure the gateway rules and email behaviour, then run the same success and failure tests. Keep the gateway’s own callback or webhook configuration working: an automation plugin can act on payment events, but it cannot confirm a transaction when the gateway cannot reach your site.

The fast route

Let WooCommerce Automatic Payment Status do it

Automates gateway-based payment status changes and customer emails; choose it when manual order updates are causing delays.

Get WooCommerce Automatic Payment Status

Sources

  1. woocommerce.com /document/managing-orders/order-statuses/?utm_source=openai
  2. developer.woocommerce.com /docs/features/payments/payment-gateway-api?utm_source=opena…
  3. woocommerce.com /document/configuring-woocommerce-settings/emails/?utm_sourc…
  4. woocommerce.com /document/troubleshooting-payment-errors/?utm_source=openai
  5. woocommerce.com /document/email-faq/?utm_source=openai

Questions

Does WooCommerce update payment statuses automatically?
Yes, WooCommerce normally updates payment-related order statuses through the active payment gateway’s confirmation process. A successful payment generally moves an order to Processing, while delayed or offline payments may remain On hold and declined payments may become Failed. If a paid order stays Pending payment, check the gateway callback or webhook, not just the email settings.
Why is a paid WooCommerce order still Pending payment?
A paid order that remains Pending payment usually means the payment gateway’s confirmation did not reach or successfully process on your site. Check the order notes, the gateway dashboard, WooCommerce logs, webhook delivery records, notification URLs, and any security, caching, or plugin conflict that could block the callback. Do not manually mark the order paid until you have verified the transaction.
Should successful payments be set to Processing or Completed?
Successful physical-goods payments should normally become Processing because the order still needs fulfilment. Completed is generally used after the order has been fulfilled, while orders containing only virtual and downloadable products may be completed automatically depending on the store setup. Let the gateway call WooCommerce’s payment-completion process instead of forcing a status without checking the order type.
Do WooCommerce emails send when an order status changes?
Yes, WooCommerce has built-in emails tied to common order statuses, including Processing, On hold, Failed, Completed, Cancelled, and Refunded. The relevant email must be enabled under WooCommerce > Settings > Emails. If the status changed but no email arrived, inspect the transactional email logs and your mail delivery setup.
Do I need a plugin to automate payment status updates?
Not always. A supported payment gateway can update statuses automatically using its built-in callback or webhook flow, and manual updates are acceptable for offline payments or small shops. You need a plugin or custom development when you want common rules across multiple gateways, extra status-change emails, detailed logs, or less manual intervention than the gateway integrations provide.