Turn it on
- Open WooCommerce, Settings, Payments.
- Switch on Cash on delivery and open its settings.
- Set a title, a description the customer sees, and the shipping methods it applies to.
- Save, then place a test order to see the checkout.
What the built-in option does
WooCommerce lets you enable COD, rename it, and limit it to some shipping methods. It leaves the payment to the courier. Everything else is up to you.
Where it stops
- No minimum or maximum order value for COD.
- No rule by country, state, postcode, customer type, product or category.
- No COD fee.
- No way to ask for part of the money first.
- No view of how many COD orders were refused.
Those gaps are where most COD cost hides. A parcel that is refused costs the courier trip out, the trip back and the packing, and the sale never happens.
Block and classic checkout
Cash on delivery shows on both the classic checkout and the block checkout. Anything you add on top, such as a fee or an advance note, has to support both. Test each after every change.
Questions
Does WooCommerce support cash on delivery by default?
Yes. It is a built-in payment method you enable under WooCommerce, Settings, Payments.
Can I limit COD to some areas?
Not with the built-in settings beyond shipping methods. A plugin that adds rules by country, state or postcode is needed.
Get paid before the door opens. Threshold is free on WordPress.org.
Get the free plugin