As part of giving back to the WordPress community, I often browse WordPress and WooCommerce support forums looking for questions posed by website owners seeking to add a little additional functionality to their WordPress / WooCommerce installation. Most times, the default go-to answer provided by others is to try this theme or that plugin. I am not a fan of using too many plugins on a WordPress website. Typically, the more plugins installed will directly impact the website loading speed, which in turn impacts visitor experience (and search engine rankings). I recently saw a request by a WooCommerce website owner looking for a way to enable their website visitors to pay by invoice. They also wanted the order to reduce their inventory holdings.
There were a lot of suggestions to try different plugins, with some costing several hundred dollars. Interestingly, several other people experienced the same issue and were following the conversation to see what the available options were. After giving the issue some thought, I provided a solution that solved the problem without any additional plugins or cost.
Use a built-in payment option
WooCommerce comes with two built-in payment options that are normally turned off by default. These payment options are Check Payments and Cash on Delivery.
I use these payment options when developing WooCommerce and testing new code. I can test placing orders without having to enter any Credit Card details. This comes in very handy when I am adding extra functionality to WooCommerce.
Pay by Invoice solution
For this solution, I recommended repurposing the Check Payments option as the Pay by Invoice option. All that was required is changing the title of the Payment option to “Pay by Invoice” and updating the Description (to something like “An invoice will be sent after you submit your order.”). Once enabled, the website will show an option for customers to select payment by invoice.
The order will process through WooCommerce just like a Credit Card order. The inventory will update properly, removing the appropriate product inventory. The main difference is that the Order status will show as “On Hold” (because it is awaiting payment). The website owner can now invoice the customer. Once the customer submits payment for the order, the website owner can mark the order as “Completed”.
A solution to WooCommerce problems does not have to be complicated. Understanding how WooCommerce works in the background is imperative to finding quick and cost-effective solutions.
Have a question about WordPress or WooCommerce?