WooCommerce "order created" webhook fires if payment hasn't been received

I have a scenario set up that is triggered by a webhook from WooCommerce. The topic of the webhook is “Order Created” While setting up a crypto payment gateway, I discovered that the scenario was running before payment was actually received. To confirm this, I also placed an order via the Check by Mail payment method and sure enough the scenario got triggered.

So the point here is that orders can be created in Woo before an actual payment is received. How do I prevent the scenario from running until payment is actually received? Thank you!

What other options do you see in that drop down field?

1 Like

@samliew Nothing in the list that would indicate anything about a payment being cleared/received. There is an Action topic which gives you a new input box to input an action, but it looks a bit complex as I’m not a coder. I found this information: How to set up WooCommerce webhooks and verify they are working I’m going to consult AI and see if it can help me accomplish the goal.

Here’s what AI suggested:

Here’s how you can handle multiple order statuses within your make.com scenario:

1. Set Up Webhook in WooCommerce:

    • Navigate to WooCommerce > Settings > Advanced > Webhooks.*
    • Click on Add Webhook or edit your existing webhook.*
    • Set the Topic to Action.*
    • In the Action Event input box, enter woocommerce_order_status_changed. This action is triggered whenever the order status changes.*
    • Set the Delivery URL to the URL of your make.com webhook.*
      2. Configure make.com Scenario:
    • Create a new scenario or edit your existing one.*
    • Set up a webhook trigger to receive the WooCommerce webhook.*
    • Add a filter step immediately after the webhook trigger to check the order status.*
      3. Configure the Filter in make.com:
    • Add a filter immediately after the webhook trigger to check if the order_status is processing or completed.*
    • In the filter settings, add conditions to allow only orders with the status processing or completed.*

Here’s how to configure the filter condition:

** Condition: order_status equals processing*
** OR Condition: order_status equals completed*

By using woocommerce_order_status_changed as the action event, you ensure that the webhook fires whenever there is a change in the order status. Then, within your make.com scenario, you can filter out the specific statuses you are interested in (processing and completed), thus handling the requirement for multiple actions.

This approach allows you to manage multiple status changes without needing to specify multiple actions in the Action Event input box, which WooCommerce does not support directly.

If it’s based on order status, If I get an order that contains both shipped and online course products. It will first go to processing status (customer gets enrolled into course), then when it gets shipped, it will go to completed status (customer gets enrolled again??)