How to Remove Cash on Delivery (COD) in WooCommerce: A Beginner’s Guide
Cash on delivery (COD) can be a great option for some online stores, offering customers a sense of security by paying only when the product arrives. However, for others, it can be a hassle, leading to higher return rates, logistical complexities, and potentially increased operational costs. If you’re using WooCommerce and have decided COD isn’t the right fit for your business, this guide will walk you through the process of disabling it.
We’ll break down the steps in a simple, easy-to-understand way, even if you’re new to WooCommerce. Let’s get started!
Why Remove Cash on Delivery?
Before we dive in, let’s understand the reasoning behind removing COD. Here are a few common reasons:
* High Return Rates: Imagine selling handmade jewelry. If a customer orders a delicate necklace with COD but changes their mind upon delivery, you’re stuck with the return, potential damage during shipping, and the cost of the initial delivery attempt.
* Logistical Challenges: Handling cash payments can be complex. It requires secure collection procedures, reconciliation processes, and potential banking fees. For small businesses, this added administrative burden can be significant.
* Increased Operational Costs: Failed deliveries due to customers not being home or refusing the order directly impact your bottom line. You pay for the delivery attempt, packaging materials, and the return shipping – all for nothing.
* Geographical Limitations: Certain remote areas might not have reliable COD services, making it difficult to offer it across your entire customer base.
Step-by-Step Guide to Removing COD in WooCommerce
The easiest and safest method to remove Cash on Delivery in WooCommerce is directly through the WooCommerce settings.
1. Access Your WooCommerce Settings:
Log in to your WordPress dashboard. Hover over “WooCommerce” in the left-hand menu and click on “Settings.”
2. Navigate to the “Payments” Tab:
At the top of the WooCommerce settings page, you’ll see several tabs. Click on the “Payments” tab.
3. Disable Cash on Delivery:
You’ll see a list of available payment gateways. Find “Cash on Delivery” in the list. Toggle the switch beside “Enabled” to the off position. It should go from blue/green to gray.

*(Image for demonstration purpose; sourced from a third-party website – itsupportguides.com)*
4. Save Changes:
Make sure to scroll down to the bottom of the page and click the “Save changes” button.
That’s it! Cash on Delivery should now be removed as an option during checkout.
Advanced Options (Conditional Logic – More Advanced)
While the above method is the simplest, sometimes you need more control. For example, you might want to disable COD only for specific products or shipping locations. This requires more advanced methods. One option is using plugins.
1. Using a Plugin (Example: Conditional Shipping and Payments)
There are several plugins available that offer conditional logic for payment gateways, including COD. A popular option is “Conditional Shipping and Payments.” Here’s how you might use it to disable COD based on product category:
* Install and Activate the Plugin: Search for “Conditional Shipping and Payments” in the WordPress plugin repository (Plugins > Add New) and install and activate it.
* Configure the Plugin: The plugin settings are usually found under WooCommerce > Conditional Shipping and Payments.
* Create a Conditional Rule: Create a new condition and set it up like this:
* Condition: “Products in Category” and then select the category (e.g., “Fragile Items”).
* Action: “Disable Payment Gateways” and select “Cash on Delivery.”
This setup would disable COD only when a customer adds a product from the “Fragile Items” category to their cart.
// (Example - This is more of conceptual code snippet, and should not be directly used without proper plugin integration.)
// This is just for example purposes and would need to be adjusted for a real plugin or custom implementation.
function maybe_disable_cod( $available_gateways ) {
global $woocommerce;
if ( is_cart() || is_checkout() ) {
$disable_cod = false;
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $cart_item ) {
$product_id = $cart_item[‘product_id’];
$terms = get_the_terms( $product_id, ‘product_cat’ );
if ( $terms ) {
foreach ( $terms as $term ) {
if ( $term->slug == ‘fragile-items’ ) { // Replace ‘fragile-items’ with your actual category slug.
$disable_cod = true;
break 2; // Exit both loops
}
}
}
}
if ( $disable_cod ) {
unset( $available_gateways[‘cod’] ); // Remove COD gateway
}
}
return $available_gateways;
}
// This code is a basic example and requires proper testing, integration with a real plugin or theme.
Important Note: The code above is a simplified example and is NOT a complete, ready-to-use solution. You would typically integrate similar logic within a plugin or a custom theme function.
Testing Your Changes
After making any changes, it’s crucial to test your checkout process to ensure COD is indeed removed (or only conditionally removed, if you used a plugin) and that other payment options are working correctly. Place a test order to confirm the changes.
Conclusion
Removing or conditionally disabling Cash on Delivery in WooCommerce is a straightforward process. By following these steps, you can streamline your checkout process, reduce operational headaches, and create a better experience for both you and your customers. Remember to always test your changes thoroughly to ensure everything is working as expected.