
COD Guard for WooCommerce — SMS code for cash on delivery, blacklist and amount limit
Protection from refused cash on delivery orders: the buyer confirms the phone with a code at checkout, and the blacklist filters out those who refused before. Pro adds an automatic blacklist, a limit by history, an allow list, a log, Telegram, WhatsApp codes, a PIN code blacklist and a partial advance.
- Compatibility
- WordPress 6.2+ · WooCommerce 6.0+ (tested on WordPress 7.1 and WooCommerce 11.2) · PHP 7.4+ (tested on 8.3) · HPOS · block and classic checkout · languages: Ukrainian, Russian, English; Hindi for buyers
- Licence
- a site + a staging copy, annual
- Trial
- 7 days, no card, one per site
- Updated
- October 2026
What Free has,
and what Pro adds
The free version works with no time limit. Pro adds the rest of the features in the table.
Key points
What the buyer sees
The buyer picks cash on delivery, and a phone confirmation box appears before the payment methods.
What the admin gets
In the settings you mark the payment methods you treat as cash on delivery, pick a provider and switch on the rules you need.
For stores in India
Version 1.1.0 added MSG91 and Fast2SMS. SMS codes are in the free version, but SMS to Indian numbers go through a template registered on DLT: without that the code will not arrive.

The trial starts when you ask
A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — a site and a staging copy
Moving the site? Unlink the licence on the old domain and activate it on the new one yourself. A staging copy (staging., dev.) works with the same key and does not take a site slot. For studios — keys for 5 or 25 sites, or unlimited.
Technical requirements
WordPress 6.2+ · WooCommerce 6.0+ · PHP 7.4+.
SMS provider with your own account and token. For India, DLT registration.
WhatsApp: an approved template. Meta restricts Authentication templates by account tier.
Advance: an online gateway in WooCommerce.
Version history
India: MSG91 and Fast2SMS with DLT templates, +91 numbers.
Confirmation box on the classic checkout, own field at a checkout with no phone, a readable log, 16 px fields on a phone, updates in the WordPress admin.
Confirmation code, blacklist and allow list, amount limit, log, Telegram.
Frequently bought with COD Guard


Product bundles and gift with purchase for WooCommerce

One-Click Order — Quick Order for WooCommerce

Smart Product Filter for WooCommerce
Full module description
COD Guard protects a shop from refused cash on delivery orders. The parcel travels to the buyer, waits, comes back, and you pay for delivery both ways. COD Guard confirms the phone with a code at checkout and remembers those who refused before.
What the buyer sees
The buyer picks cash on delivery, and a phone confirmation box appears before the payment methods. The buyer sends a code, types it in, and the order can go through. Without a code a cash on delivery order is refused on both the classic and the block checkout.
If the buyer is on the blacklist, cash on delivery either disappears or the buyer sees an explanation: you choose. Online payment stays available. In Pro the amount limit works the same way.
What the admin gets
In the settings you mark the payment methods you treat as cash on delivery, pick a provider and switch on the rules you need. The order card shows whether the number was confirmed and how many orders it has redeemed.
In Pro the log shows every code sent and every blocked attempt. The number is masked in the log.
For stores in India
Version 1.1.0 added MSG91 and Fast2SMS. SMS codes are in the free version, but SMS to Indian numbers go through a template registered on DLT: without that the code will not arrive. Pro has WhatsApp codes with SMS backup, a delivery PIN code blacklist and a partial advance: a percentage or a fixed amount online, the rest on delivery.
The advance is taken by the payment plugin of your shop. UPI works if that plugin accepts it: COD Guard has no UPI gateway of its own.
How it works, step by step
- The buyer picks cash on delivery, and the module checks the number, e-mail, IP and, in Pro, the PIN and history.
- If nothing blocks it, the module sends a code.
- The buyer types the code and the number counts as confirmed.
- Before the order is created, the server checks everything again.
- In Pro, refused orders add the number to the blacklist over time.
Under the hood
- Codes are stored only as a hash.
- There are limits: 5 attempts per code, 5 codes per number per hour, a pause between sends. The values can be changed.
- The block works on the server, including through the Store API.
- Removing the plugin removes its tables.
How to install
- Plugins → Add New → Upload Plugin: pick the zip and activate.
- WooCommerce → COD Guard: mark the cash on delivery payment methods.
- Keep test mode first and walk through checkout.
- Pick a provider, enter the token and the sender.
- For Pro: paste the key or start the 7-day trial.
The module is not on wordpress.org yet: the free version and Pro are one archive from this page. Without a key it works as the free version.
Questions
about the module
Didn't find the answer? Message us on Telegram and we'll reply within a business day.
The confirmation box does not appear.
Check that the chosen payment method is marked as cash on delivery in the settings and that confirmation is on. The box shows only after such a method is selected.
What counts as a refused order?
You pick the order statuses. By default they are Cancelled and Failed.
Does a buyer on the allow list still get a code?
Yes. The allow list lifts the blacklist and limits, while the code follows the general rules. To skip regular buyers, Pro has a condition for those who redeemed before.
What do I need for SMS in India?
DLT registration: a Principal Entity, a header and a template. Add them in your MSG91 or Fast2SMS account and paste the template ID into COD Guard. Fast2SMS sends to Indian numbers only.
How is the advance paid?
As a separate order on the normal WooCommerce payment page, through an online gateway of your shop. The main order waits on hold. An unpaid advance cancels both orders after the time you set. A manager refunds the advance by hand.
Is a blacklist personal data?
Yes. The log and export mask the number, while the list itself stores it in full. The legal assessment for your country is yours to make.
Can I connect my own SMS provider?
Yes: your own HTTP gateway with the {phone}, {text}, {sender} and {token} placeholders, or the cccg_sms_send filter.
No reviews yet. Be the first.
No questions yet. Ask one — we answer within 24 hours.
Not quite what you are looking for?
We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.
Order a custom module
Buying the module
—
Charged in UAH; your bank converts it to your currency. EUR price is approximate.



















