Hi there,
If you setup the plugin to capture payments automatically, it will do so and trigger a “payment_complete()” event for the order in WooCommerce order after payment like any other payment gateway plugin. WooCommerce then decides what status to put the order into. Usually if you are selling virtual and downloadable products, WooCommerce puts the order directly into the “Completed” status, but with physical products the order status should become “Processing”. Just to be clear, our plugin does not decide the status between “Processing” and “Completed”, it will be left to WooCommerce.
The exception to this is when the plugin will set the order status to “On Hold”. This happens either when you set the plugin to NOT capture payments automatically, or if you setup Authorize.Net to put the transaction on hold for review, for instance in case there is an AVS mismatch. When that happens you can simply change the order status to either “Processing” or “Completed” manually after reviewing the order and the plugin will capture the payment via an API request. The plugin does not poll Authorize.Net, but it lets you capture the payment from the WooCommerce edit order screen via a status change. Again the only reason you cannot fully automate this is because you either chose to not capture payments in the plugin settings or setup your gateway account to put transactions on hold using Authorize.Net’s fraud detection system.
The plugin is setup upon the interpretation of WooCommerce of its own order statuses. I hope that makes sense.
https://woo.com/document/managing-orders/
Thank you ever so much for taking the time to explain the plugin so throughly! I very much appreciate it.
I understand fully now and due to FDS, everything is ‘processing’ and will stay like that. But that’s a woocommerce thing like you’ve shared.
Incase others wonder how you could complete an order with FDS on: I have looked at creating a custom webhook on authorize.net to send a completed signal to the woocommerce server. A custom function listens on an endpoint and can update the order if something is received. That’s out the scope of this plugin and would be individual for you to develop/solve.