How to Set Up Cash on Delivery in WooCommerce

Want to let customers pay when their order arrives? You can set up Cash on Delivery in WooCommerce in under five minutes. No plugin needed for the basic version.

Cash on Delivery still drives a big share of online sales. In the Middle East and Africa, it made up 17% of ecommerce payments in 2023. It is even bigger in markets like Bangladesh, India, and Pakistan, where many shoppers do not trust online payments yet.

This guide shows you how to set up Cash on Delivery in WooCommerce. You will also learn how to add a COD fee, limit it to certain areas, cut down on fake orders, and fix common problems. 

Quick Answer: How to Enable Cash on Delivery in WooCommerce

  1. Go to WooCommerce > Settings > Payments.
  2. Find Cash on Delivery and click Enable.
  3. Click Manage to open the settings.
  4. Add a title, description, and payment instructions.
  5. Choose which shipping methods can use COD.
  6. Click Save changes.

That is the full basic setup. The steps below show each part with more detail.

What Is Cash on Delivery in WooCommerce?

What Is Cash on Delivery

Cash on Delivery (COD) is a payment method. The customer places an order online. They pay in cash when the order reaches their door.

WooCommerce comes with COD built in. You do not need to buy or install anything to use the basic version. You just turn it on.

COD is also called “pay on delivery” or “cash on arrival.” Some stores use it as their main payment option. Others use it next to cards and digital wallets.

Why Offer Cash on Delivery?

COD is not right for every store. But it helps many. Here is why store owners use it.

  • More trust. New shoppers can order without sharing card details. They pay only after they see the product.
  • A wider audience. Some people do not have a card or bank account. COD lets them buy from you.
  • Fewer abandoned carts. Buyers who fear online fraud are more likely to check out.
  • A strong fit for local markets. In many regions, COD is the payment method people expect.

The downside: COD brings risk. Some orders get returned or refused. You cover the shipping cost when that happens. We cover how to reduce this later in the guide.

Good Read: Save Cart for Buy Later: Letting Customers Return to Finish Purchases

How to Set Up Cash on Delivery in WooCommerce (Full Steps)

You need WooCommerce installed and active. That is the only requirement. Follow these steps.

Step 1: Open Your Payment Settings

Log in to your WordPress dashboard. Go to WooCommerce > Settings. Click the Payments tab at the top.

You will see a list of payment methods. This includes cards, PayPal, and offline options.

Open Your Payment Settings

Step 2: Enable Cash on Delivery

Find Cash on Delivery in the list. It sits under the offline payment options.

Click the Enable toggle or button next to it. The switch turns on.

Enable Cash on Delivery

Step 3: Open the COD Settings

Click Manage next to Cash on Delivery. This opens the setup page.

Here you control how COD looks and works at checkout.

Click on Manage

Step 4: Fill In the Settings

You will see a few fields. Here is what each one does.

Open the COD Settings
  • Enable/Disable: Keep this checked to keep COD on.
  • Title: The name customers see at checkout. “Cash on Delivery” works well. You can also write “Pay When You Receive Your Order.”
  • Description: A short note shown when the customer picks COD. Example: “Pay with cash when your order arrives.”
  • Instructions: Text shown on the order confirmation and in the email. Use it to explain the next steps.
  • Enable for shipping methods: Choose which shipping options allow COD. Leave it blank to allow all.
  • Accept for virtual orders: Check this only if you sell digital items and want COD on them. Most stores leave it off.

Step 5: Save Your Changes

Click Save changes at the bottom. COD is now live on your store.

Your customers will see it as an option on the checkout page.

Cash on delivery on checkout

How to Limit Cash on Delivery to Specific Shipping Methods

You may not want COD on every order. Maybe you only trust it for local delivery. WooCommerce lets you control this.

  1. Open the COD settings again (WooCommerce > Settings > Payments > Cash on Delivery > Manage).
  2. Find the Enable for shipping methods field.
  3. Click it and pick the shipping methods that can use COD. For example, choose “Local Delivery” only.
  4. Save changes.

Now COD shows up only when the customer picks one of those shipping methods. This is a simple way to keep cash orders close to home.

How to Limit Cash on Delivery to Specific Products or Areas

The default WooCommerce COD does not block COD by product or zip code on its own. Many store owners ask for this. It is a common request on Reddit and WooCommerce forums.

Here are your options.

  • By shipping zone or method: Set up a shipping method that only covers certain areas. Then allow COD only for that method. This is the free, built-in way.
  • By product: Use shipping classes. Assign a special shipping method to certain products. Then link COD to that method only.
  • By zip code or country: Use a plugin. Popular choices let you show or hide COD based on the customer’s location. Search the WordPress plugin library for “conditional payment methods” or “payment gateways by location.”

The built-in tools work for basic cases. Plugins help when you need tight control.

How to Add a Cash on Delivery Fee in WooCommerce

WooCommerce does not let you add a COD fee on its own. This surprises many store owners.

A COD fee helps cover the extra cost of cash handling and returns. To add one, you need a plugin or a small code snippet.

Option 1: Use a plugin. Search for “WooCommerce COD fee” or “extra fee for payment method” in the plugin library. These let you set a flat fee or a percentage. You can often set rules, like a fee only on orders under a certain amount.

Option 2: Use a code snippet. If you are comfortable with code, you can add a fee with a function in your theme’s functions.php file or a code snippets plugin. Test it on a staging site first.

Always show the COD fee clearly at checkout. Hidden fees make people cancel orders.

How to Test Cash on Delivery Before You Go Live

Never trust a setup you have not tested. Do a quick check first.

  1. Open your store in a private or incognito browser window.
  2. Add a product to your cart.
  3. Go to checkout.
  4. Confirm that Cash on Delivery shows as a payment option.
  5. Place a test order using COD.
  6. Check that the order appears in WooCommerce > Orders.

If COD does not show, jump to the troubleshooting section below.

How WooCommerce Handles COD Orders

This part confuses new store owners. Here is how it works.

When a customer places a COD order, WooCommerce marks it as Processing. The order is not paid yet. It waits for you to collect the cash.

After the customer pays on delivery, you mark the order Complete yourself. Do this in WooCommerce > Orders. Click the order and change its status.

If you use the WooCommerce mobile app with a card reader for in-person payments, the app can mark orders complete on its own. For plain cash, you update the status by hand.

Good Read: How to Add Multiple Addresses at Checkout in WooCommerce

How to Reduce Fake COD Orders and Returns

This is the biggest COD problem. Most guides ignore it. Store owners on Reddit and Quora say fake or refused orders are their number one headache.

Here the term to know is RTO, which means “return to origin.” That is an order the customer refuses. You pay for shipping both ways and get nothing back.

Try these steps to cut your losses.

  • Verify the phone number. Add OTP (one-time password) verification at checkout. The customer confirms a code sent to their phone. This blocks fake numbers.
  • Ask for a small advance. Take a partial payment online, like a small deposit. Real buyers pay it. Prank buyers drop off.
  • Confirm orders before shipping. Call or message COD customers to confirm the order. A quick “yes” cuts refusals.
  • Set a minimum and maximum order value. Very small or very large COD orders carry more risk. Limit them.
  • Block repeat offenders. If a customer refuses many orders, stop offering them COD.
  • Set clear delivery windows. People are more likely to accept an order they expect.

Even a few of these steps can lower your return rate a lot.

Troubleshooting: Cash on Delivery Not Showing at Checkout

If COD does not appear, check these one by one.

  • Is COD enabled? Go back to the Payments tab and confirm the toggle is on.
  • Shipping method mismatch. If you limited COD to certain shipping methods, it only shows for those. Make sure the customer’s method is on the list.
  • Virtual products. COD is off for virtual products by default. Turn on “Accept for virtual orders” if you need it.
  • Cart total rules. A plugin may hide COD above or below a set amount. Check your plugin settings.
  • Theme or plugin conflict. Switch to a default theme and turn off other plugins to test. If COD comes back, one of them caused the clash.
  • Clear your cache. Old cached pages can hide new settings. Clear your site and browser cache.

Work through the list in order. One of these fixes almost every case.

Frequently Asked Questions

Does WooCommerce have Cash on Delivery built in?

Yes. COD is a free, built-in payment method in WooCommerce. You turn it on under WooCommerce > Settings > Payments. You do not need a plugin for the basic version.

Can I charge a fee for Cash on Delivery in WooCommerce?

Not with the default settings. WooCommerce does not add a COD fee on its own. You need a plugin or a code snippet to add a flat or percentage fee.

Can I offer COD only in certain areas?

Yes. Set up a shipping method or zone for those areas. Then allow COD only for that method. For zip-code control, use a location-based payment plugin.

What order status does a COD order get?

WooCommerce marks new COD orders as Processing. The order is not paid yet. You mark it Complete after you collect the cash on delivery.

Is Cash on Delivery safe for my store?

COD is safe to offer, but it carries return risk. Some orders get refused. Use phone verification, order confirmation calls, and a small advance to lower that risk.

Why is Cash on Delivery not showing at checkout?

The most common reasons are a shipping method mismatch, a virtual product, a cart total rule, or a plugin conflict. Check that COD is enabled and matches the customer’s shipping method.

Final Steps

You now know how to set up Cash on Delivery in WooCommerce. You can enable it, limit where it shows, add a fee, and cut down on fake orders.

Start with the basic setup. Test one order. Then add the controls you need, like verification or a COD fee.

The smart move is to offer COD next to at least one online payment option. That way you serve cash-only shoppers and card users both. More payment choices mean more completed orders.

Ready to go? Open WooCommerce > Settings > Payments and turn on Cash on Delivery now.

author
I'm a technical content writer with a passion for simplifying complex ideas into clear, engaging content for web, email, and social media. With experience in SEO, CRM tools, and digital strategy, I've worked with RTOs, education consultancies, and global campaigns. I enjoy creating high-performing content, leading creative teams, and diving into performance analytics. Outside of work, you'll find me reading, doing photography, or hunting for the next great café spot.