{"id":362024,"date":"2026-09-05T13:23:48","date_gmt":"2026-09-05T13:23:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/codvane-cash-on-delivery-order-verification\/"},"modified":"2026-09-05T13:23:24","modified_gmt":"2026-09-05T13:23:24","slug":"codvane","status":"publish","type":"plugin","link":"https:\/\/mg.wordpress.org\/plugins\/codvane\/","author":23539160,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"CODVane - Cash on Delivery Order Verification","header_author":"SaifBrand","header_description":"Score every cash-on-delivery order for risk before you ship it, confirm doubtful ones over WhatsApp for free, and keep a record of who refuses delivery. No SMS gateway, no per-order fee.","assets_banners_color":"","last_updated":"2026-09-05 13:23:24","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/saifbrand.com\/codvane","header_author_uri":"https:\/\/saifbrand.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":45,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.0":{"tag":"1.1.0","author":"saifbrand","date":"2026-09-05 13:23:24","revision":3682475}},"upgrade_notice":{"1.1.0":"<p>Adds COD restrictions, a COD fee, and a report showing what refused deliveries actually cost you.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3682475,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3682475,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3682475,"resolution":"1","location":"assets","locale":"","width":560,"height":638},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3682475,"resolution":"2","location":"assets","locale":"","width":2480,"height":872},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3682475,"resolution":"3","location":"assets","locale":"","width":2000,"height":558},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3682475,"resolution":"4","location":"assets","locale":"","width":2000,"height":912},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3682475,"resolution":"5","location":"assets","locale":"","width":2000,"height":912}},"screenshots":{"1":"The risk score and the reasons behind it, on the order, with the WhatsApp button.","2":"The COD risk column on the orders list.","3":"What cash on delivery is costing you: refusal rate, money lost, and how often the flagging was right.","4":"Deciding who may pay on delivery: order value, postcodes, countries and particular customers.","5":"The cash on delivery fee, with the option to charge only repeat refusers."}},"plugin_section":[],"plugin_tags":[31179,31178,236038,150620,286],"plugin_category":[45],"plugin_contributors":[275622],"plugin_business_model":[],"class_list":["post-362024","plugin","type-plugin","status-publish","hentry","plugin_tags-cash-on-delivery","plugin_tags-cod","plugin_tags-fake-orders","plugin_tags-rto","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-saifbrand","plugin_committers-saifbrand"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/codvane\/assets\/icon-128x128.png?rev=3682475","icon_2x":"https:\/\/ps.w.org\/codvane\/assets\/icon-256x256.png?rev=3682475","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/codvane\/assets\/screenshot-1.png?rev=3682475","caption":"The risk score and the reasons behind it, on the order, with the WhatsApp button."},{"src":"https:\/\/ps.w.org\/codvane\/assets\/screenshot-2.png?rev=3682475","caption":"The COD risk column on the orders list."},{"src":"https:\/\/ps.w.org\/codvane\/assets\/screenshot-3.png?rev=3682475","caption":"What cash on delivery is costing you: refusal rate, money lost, and how often the flagging was right."},{"src":"https:\/\/ps.w.org\/codvane\/assets\/screenshot-4.png?rev=3682475","caption":"Deciding who may pay on delivery: order value, postcodes, countries and particular customers."},{"src":"https:\/\/ps.w.org\/codvane\/assets\/screenshot-5.png?rev=3682475","caption":"The cash on delivery fee, with the option to charge only repeat refusers."}],"raw_content":"<!--section=description-->\n<p>If you sell cash on delivery, you already know the problem. You pack the goods, you pay the courier, the customer refuses the parcel at the door, and it comes back to you. You paid both ways and sold nothing.<\/p>\n\n<p>CODVane looks at every cash-on-delivery order the moment it arrives and gives it a score out of 100, worked out from what your shop already knows.<\/p>\n\n<h4>What it looks at<\/h4>\n\n<ul>\n<li><strong>Who has refused a delivery before.<\/strong> The strongest signal there is, and the only one based on something that actually happened. You mark a refused delivery once, and every future order from that phone or email is scored higher.<\/li>\n<li><strong>Whether the phone number can be real.<\/strong> Too short, one digit repeated, or a run of consecutive digits.<\/li>\n<li><strong>Several orders in a few minutes<\/strong> from the same phone or the same address.<\/li>\n<li><strong>A large first order<\/strong> from someone who has never taken a delivery from you.<\/li>\n<li><strong>An address a courier cannot find<\/strong> \u2014 two words and no number.<\/li>\n<li><strong>Throwaway email addresses<\/strong> from services that delete the mailbox after a few minutes.<\/li>\n<\/ul>\n\n<p>A customer who has taken delivery from you before gets points back. Your best customers should not be treated like strangers.<\/p>\n\n<h4>Decide who may pay on delivery<\/h4>\n\n<p>Everything here is off until you switch it on.<\/p>\n\n<ul>\n<li><strong>Order value<\/strong> \u2014 do not offer COD below or above an amount. A tiny order costs more to send twice than it is worth; a very large one is more than you want to risk on a stranger.<\/li>\n<li><strong>Postcodes<\/strong> \u2014 offer COD only where you deliver reliably, or never where you do not. End an entry with a star to cover a whole range, so 12* matches every postcode starting 12.<\/li>\n<li><strong>Countries<\/strong> \u2014 never offer COD to a country you do not want to send unpaid parcels to.<\/li>\n<li><strong>Particular customers<\/strong> \u2014 a list of phone numbers or emails that never get COD. Numbers are matched on the digits, so +8801711111111 and 01711111111 are the same person.<\/li>\n<li><strong>Anyone who has refused before<\/strong> \u2014 optional, and it uses only refusals you recorded yourself.<\/li>\n<\/ul>\n\n<p>If cash on delivery is the only payment method your shop offers, none of these apply. Taking away the only way to pay loses you the sale rather than protecting it, so the plugin will not do it.<\/p>\n\n<h4>A cash on delivery fee<\/h4>\n\n<p>A fixed amount or a percentage, added at the checkout like any other fee, to recover what a refused parcel costs you in courier charges. You can waive it above an order value, and \u2014 this is the setting worth using \u2014 charge it <strong>only<\/strong> to customers who have refused a delivery before. Everyone else pays nothing, and the people who have actually cost you money are the ones covering it.<\/p>\n\n<h4>See what it is all costing you<\/h4>\n\n<p>Most shops selling on delivery have no idea what their refusal rate is, which is the number that decides whether any of this is worth doing.<\/p>\n\n<p>The settings screen opens with it: how many orders were paid on delivery, what share came back refused, how much money that was, and how many were flagged. Over 7, 30 or 90 days, or the last year.<\/p>\n\n<p>It also shows how many of the orders CODVane flagged really were refused. That number is allowed to look bad: if it is low, the thresholds are too tight for your shop and you are being warned about customers who were perfectly fine. You should be able to see when the plugin is getting it wrong.<\/p>\n\n<h4>Confirming an order costs you nothing<\/h4>\n\n<p>Verifying an order by SMS or an automated call means a paid gateway and a fee for every order. The shops losing the most money to refused deliveries are often the ones least able to absorb that.<\/p>\n\n<p>CODVane uses WhatsApp's ordinary click-to-chat link. One button on the order opens WhatsApp on your own phone or desktop, with the message to that customer already written \u2014 their name, the order number, the total and the delivery address. No account to connect, no API key, no approval process, nothing to pay.<\/p>\n\n<h4>Nothing leaves your server<\/h4>\n\n<p>There is no outside service, no API key and no account. Every signal is read from the order itself or from orders your shop already has. Your customers' phone numbers and addresses are never sent anywhere.<\/p>\n\n<h4>It does not cancel anything by itself<\/h4>\n\n<p>Flagged orders are marked for you to look at. They are not held, cancelled or refunded. You decide.<\/p>\n\n<p>There is one optional exception, off by default: you can make customers whose delivery you personally marked as refused pay in advance. They can still buy \u2014 cash on delivery simply is not offered to them. That uses only refusals you recorded yourself, never a guess.<\/p>\n\n<p>If cash on delivery is the only payment method your shop offers, this does nothing at all. Taking away the only way to pay would lose you the sale rather than secure it.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate. WooCommerce must be active.<\/li>\n<li>Go to WooCommerce \u2192 COD Verification.<\/li>\n<li>Set what counts as a large order for your shop, and leave the rest as it is until you have seen a few scores.<\/li>\n<\/ol>\n\n<p>New cash-on-delivery orders are scored from that moment. Orders placed before you switched it on are left alone.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20stop%20fake%20orders%3F\"><h3>Does it stop fake orders?<\/h3><\/dt>\n<dd><p>No plugin can. It tells you which orders are worth a two-minute phone call before you pay a courier, and it remembers who has let you down before. That is a different and more honest claim.<\/p><\/dd>\n<dt id=\"do%20i%20need%20an%20sms%20gateway%20or%20a%20whatsapp%20business%20account%3F\"><h3>Do I need an SMS gateway or a WhatsApp Business account?<\/h3><\/dt>\n<dd><p>No. The WhatsApp button is the same click-to-chat link anyone can use, opened from your own device. There is nothing to sign up for and nothing to pay.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20checkout%3F\"><h3>Does it work with the block checkout?<\/h3><\/dt>\n<dd><p>Yes. Orders from the classic checkout and the block checkout are both scored.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20hpos%3F\"><h3>Does it work with HPOS?<\/h3><\/dt>\n<dd><p>Yes. Every order read and write goes through WooCommerce's own order API, and compatibility is declared.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20checkout%3F\"><h3>Will it slow down my checkout?<\/h3><\/dt>\n<dd><p>Scoring happens after the order is created, not while the customer is waiting. The customer sees no difference.<\/p><\/dd>\n<dt id=\"will%20it%20stop%20customers%20ordering%3F\"><h3>Will it stop customers ordering?<\/h3><\/dt>\n<dd><p>Only if you tell it to, and never in a way that leaves someone with no way to pay. Every restriction is off when you install it, and any rule that would remove your last payment method is ignored.<\/p><\/dd>\n<dt id=\"is%20the%20percentage%20fee%20taken%20on%20the%20total%3F\"><h3>Is the percentage fee taken on the total?<\/h3><\/dt>\n<dd><p>On the goods plus shipping, before the fee itself. A fee cannot be a percentage of a number it is part of.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20uninstall%20it%3F\"><h3>What happens to my data if I uninstall it?<\/h3><\/dt>\n<dd><p>The settings are deleted. The scores and the record of refused deliveries stay, because they are facts about your own orders. Nothing is sent anywhere at any point.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: rules for who may pay on delivery \u2014 minimum and maximum order value, postcode allow or block lists with star ranges, blocked countries, and a list of customers who never get COD.<\/li>\n<li>New: a cash-on-delivery fee, fixed or a percentage, with an optional waiver above an order value and an option to charge only customers who have refused a delivery before.<\/li>\n<li>New: a report on the settings screen showing your refusal rate, what refused orders cost you, and how often the flagging was right. Over 7, 30 or 90 days or the last year.<\/li>\n<li>No rule will ever remove the last payment method your shop offers.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Score COD orders for risk, restrict who can use it, charge a COD fee, confirm over WhatsApp, and see what refused deliveries cost you.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/362024","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=362024"}],"author":[{"embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/saifbrand"}],"wp:attachment":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=362024"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=362024"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=362024"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=362024"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=362024"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=362024"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}