{"id":401548,"date":"2026-11-10T19:18:21","date_gmt":"2026-11-10T19:18:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/yaceen-cod\/"},"modified":"2026-11-10T19:17:53","modified_gmt":"2026-11-10T19:17:53","slug":"yaceen-cod","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/yaceen-cod\/","author":23602079,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.1.4","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"Yaceen COD","header_author":"Yaceen","header_description":"Confirmation queue for cash-on-delivery orders: call or WhatsApp each buyer, track attempts, and block phone numbers that keep refusing deliveries.","last_updated":"2026-11-10 19:17:53","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/elkaneb","header_plugin_uri":"https:\/\/yaceen.com\/cod\/","header_author_uri":"https:\/\/yaceen.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":33,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"yaceen","date":"2026-11-10 19:17:53","revision":3795090}},"upgrade_notice":{"0.1.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3795103,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3795103,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3795103,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3795103,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3795090,"resolution":"1","location":"assets","locale":"","width":1920,"height":1025},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3795090,"resolution":"2","location":"assets","locale":"","width":1920,"height":1030},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3795090,"resolution":"3","location":"assets","locale":"","width":1920,"height":1080}},"screenshots":{"1":"The confirmation queue: call or WhatsApp each customer, see attempts and risk, then Confirm, No answer or Cancel.","2":"Every queue action is written to the order notes with the agent's name.","3":"Cash on delivery refused at checkout for a phone number with too many refused or cancelled orders."}},"plugin_section":[],"plugin_tags":[31179,31178,236038,226324,3160],"plugin_category":[],"plugin_contributors":[291918],"plugin_business_model":[],"class_list":["post-401548","plugin","type-plugin","status-publish","hentry","plugin_tags-cash-on-delivery","plugin_tags-cod","plugin_tags-fake-orders","plugin_tags-order-confirmation","plugin_tags-whatsapp","plugin_contributors-yaceen","plugin_committers-yaceen"],"banners":{"banner":"https:\/\/ps.w.org\/yaceen-cod\/assets\/banner-772x250.png?rev=3795103","banner_2x":"https:\/\/ps.w.org\/yaceen-cod\/assets\/banner-1544x500.png?rev=3795103","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/yaceen-cod\/assets\/icon-128x128.png?rev=3795103","icon_2x":"https:\/\/ps.w.org\/yaceen-cod\/assets\/icon-256x256.png?rev=3795103","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/yaceen-cod\/assets\/screenshot-1.png?rev=3795090","caption":"The confirmation queue: call or WhatsApp each customer, see attempts and risk, then Confirm, No answer or Cancel."},{"src":"https:\/\/ps.w.org\/yaceen-cod\/assets\/screenshot-2.png?rev=3795090","caption":"Every queue action is written to the order notes with the agent's name."},{"src":"https:\/\/ps.w.org\/yaceen-cod\/assets\/screenshot-3.png?rev=3795090","caption":"Cash on delivery refused at checkout for a phone number with too many refused or cancelled orders."}],"raw_content":"<!--section=description-->\n<p>Cash on delivery sells, but fake and refused orders cost you shipping, packaging and stock. Yaceen COD adds a simple confirmation step between \"order placed\" and \"order shipped\".<\/p>\n\n<p><strong>How it works<\/strong><\/p>\n\n<ol>\n<li>A customer pays with Cash on delivery. Instead of going straight to <em>Processing<\/em>, the order waits in <strong>Awaiting confirmation<\/strong> and its stock is reserved.<\/li>\n<li>Your team opens <strong>WooCommerce \u2192 Yaceen COD<\/strong> and sees every order to confirm, oldest first.<\/li>\n<li>One click calls the customer, or opens <strong>WhatsApp with a ready-made message<\/strong> (name, order number, items, total).<\/li>\n<li>Click <strong>Confirm<\/strong> (order moves to Processing and the customer gets the usual email), <strong>No answer<\/strong> (attempt counter goes up), or <strong>Cancel<\/strong>.<\/li>\n<li>If the parcel comes back, set the order to <strong>Refused at delivery<\/strong> and the stock is returned.<\/li>\n<\/ol>\n\n<p><strong>Stop repeat refusers<\/strong><\/p>\n\n<p>Every customer is recognized by phone number, however it was typed (<code>0612345678<\/code>, <code>+212 6 12 34 56 78<\/code>, <code>00212612345678<\/code>\u2026). The queue shows a warning next to customers with refused or cancelled orders, and after the number you choose, Cash on delivery is refused at checkout for that phone number. The customer can still pay another way.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>Confirmation queue with call and WhatsApp links<\/li>\n<li>WhatsApp message template with <code>{name}<\/code>, <code>{order}<\/code>, <code>{items}<\/code>, <code>{total}<\/code><\/li>\n<li>Call attempt counter; every action is written to the order notes with the agent's name<\/li>\n<li>\"Awaiting confirmation\" and \"Refused at delivery\" order statuses<\/li>\n<li>Stock reserved while waiting, returned on cancel or refusal<\/li>\n<li>Risk warning and automatic COD blocking per phone number<\/li>\n<li>Last 30 days: confirmation rate and delivery rate<\/li>\n<li>Works with the block checkout and the classic checkout<\/li>\n<li>Compatible with High-Performance Order Storage (HPOS)<\/li>\n<li>No account, no API key, no monthly WhatsApp fees: messages are sent from your own WhatsApp<\/li>\n<\/ul>\n\n<p>Built for stores that sell with cash on delivery in Morocco, Algeria, Egypt, the Gulf, India, Latin America and anywhere else COD is the norm.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin builds links to <strong>WhatsApp<\/strong> (<code>https:\/\/wa.me\/<\/code>), a service provided by WhatsApp LLC \/ Meta. Nothing is sent automatically: data leaves your site only when a store user clicks the WhatsApp link in the admin queue. The link contains the customer's phone number, first name, order number, item names and quantities, and order total, so WhatsApp can open the chat with the message pre-filled.<\/p>\n\n<ul>\n<li>Terms of service: https:\/\/www.whatsapp.com\/legal\/terms-of-service<\/li>\n<li>Privacy policy: https:\/\/www.whatsapp.com\/legal\/privacy-policy<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>The plugin stores the last 9 digits of the billing phone number on each COD order (order meta <code>_codc_phone<\/code>) to recognize returning customers, and the number of call attempts (<code>_codc_attempts<\/code>). It does not send any data to the plugin author.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Upload the <code>yaceen-cod<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install it from <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate <strong>Yaceen COD<\/strong>.<\/li>\n<li>Make sure <strong>Cash on delivery<\/strong> is enabled in <strong>WooCommerce \u2192 Settings \u2192 Payments<\/strong>.<\/li>\n<li>Open <strong>WooCommerce \u2192 Yaceen COD<\/strong> to see the queue and adjust the settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20send%20whatsapp%20messages%20automatically%3F\"><h3>Does it send WhatsApp messages automatically?<\/h3><\/dt>\n<dd><p>No. The WhatsApp link opens a chat with the customer and the message already written; your agent presses Send. This keeps it free and avoids WhatsApp API approval.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20orders%20that%20were%20placed%20before%20i%20activated%20the%20plugin%3F\"><h3>What happens to orders that were placed before I activated the plugin?<\/h3><\/dt>\n<dd><p>They keep their normal status. Risk history only counts orders that went through the plugin (awaiting confirmation, cancelled or refused after activation).<\/p><\/dd>\n<dt id=\"can%20a%20blocked%20customer%20still%20order%3F\"><h3>Can a blocked customer still order?<\/h3><\/dt>\n<dd><p>Yes, with any payment method except Cash on delivery. Set the threshold to 0 to never block anyone.<\/p><\/dd>\n<dt id=\"who%20can%20use%20the%20queue%3F\"><h3>Who can use the queue?<\/h3><\/dt>\n<dd><p>Anyone who can edit orders (Shop Manager and Administrator). Only users who can manage WooCommerce can change the settings.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20hpos%20and%20the%20block%20checkout%3F\"><h3>Does it work with HPOS and the block checkout?<\/h3><\/dt>\n<dd><p>Yes, both, as well as the classic posts storage and the classic <code>[woocommerce_checkout]<\/code> shortcode.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release: confirmation queue, WhatsApp links, attempt counter, \"Awaiting confirmation\" and \"Refused at delivery\" statuses, risk warnings and COD blocking per phone number, 30-day stats.<\/li>\n<\/ul>","raw_excerpt":"Confirm every cash-on-delivery order by phone or WhatsApp before you ship, and stop customers who keep refusing parcels.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/401548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=401548"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/yaceen"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=401548"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=401548"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=401548"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=401548"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=401548"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=401548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}