{"id":345210,"date":"2026-07-30T06:50:48","date_gmt":"2026-07-30T06:50:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cod-advance-payment-for-woocommerce\/"},"modified":"2026-07-30T06:50:23","modified_gmt":"2026-07-30T06:50:23","slug":"cod-advance-payment","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/cod-advance-payment\/","author":16630278,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.0.2","requires":"6.9","requires_php":"7.4","requires_plugins":null,"header_name":"COD & Advance Payment for WooCommerce","header_author":"Opus Technologies","header_description":"Charge a fee on Cash on Delivery orders, control exactly who can use COD, and require a partial advance payment before COD orders are accepted.","assets_banners_color":"eff3fc","last_updated":"2026-07-30 06:50:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/opustech.net\/plugins\/cod-advance-payment\/","header_author_uri":"https:\/\/opustech.net","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"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":"phonedigg","date":"2026-07-30 06:50:23"}},"upgrade_notice":{"1.1.0":"<p>Part payment has been rebuilt so orders reconcile correctly, and all modules now ship switched off. If you used 1.0.0 in production, review the Reconciliation tab and re-enable the modules you want.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3628037,"resolution":"256x256","location":"assets","locale":"","width":1254,"height":1254}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3628177,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3628177,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3628177,"resolution":"1","location":"assets","locale":"","width":1281,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3628177,"resolution":"2","location":"assets","locale":"","width":1276,"height":844},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3628177,"resolution":"3","location":"assets","locale":"","width":1274,"height":868},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3628177,"resolution":"4","location":"assets","locale":"","width":1279,"height":847}},"screenshots":{"1":"Modules screen. Everything starts off; enable one at a time.","2":"Cash on Delivery fee settings.","3":"Availability rules, from order value to postcode wildcards.","4":"Part payment settings.","5":"The payment choice as the customer sees it at checkout.","6":"Reconciliation report showing money received against money still owed.","7":"Dry-run calculator on the Diagnostics tab.","8":"Balance due column on the Orders screen."}},"plugin_section":[],"plugin_tags":[31179,31178,73197,225714,286],"plugin_category":[45],"plugin_contributors":[273759],"plugin_business_model":[],"class_list":["post-345210","plugin","type-plugin","status-publish","hentry","plugin_tags-cash-on-delivery","plugin_tags-cod","plugin_tags-deposit","plugin_tags-partial-payment","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-phonedigg","plugin_committers-phonedigg"],"banners":{"banner":"https:\/\/ps.w.org\/cod-advance-payment\/assets\/banner-772x250.png?rev=3628177","banner_2x":"https:\/\/ps.w.org\/cod-advance-payment\/assets\/banner-1544x500.png?rev=3628177","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cod-advance-payment\/assets\/icon-256x256.png?rev=3628037","icon_2x":"https:\/\/ps.w.org\/cod-advance-payment\/assets\/icon-256x256.png?rev=3628037","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cod-advance-payment\/assets\/screenshot-1.png?rev=3628177","caption":"Modules screen. Everything starts off; enable one at a time."},{"src":"https:\/\/ps.w.org\/cod-advance-payment\/assets\/screenshot-2.png?rev=3628177","caption":"Cash on Delivery fee settings."},{"src":"https:\/\/ps.w.org\/cod-advance-payment\/assets\/screenshot-3.png?rev=3628177","caption":"Availability rules, from order value to postcode wildcards."},{"src":"https:\/\/ps.w.org\/cod-advance-payment\/assets\/screenshot-4.png?rev=3628177","caption":"Part payment settings."}],"raw_content":"<!--section=description-->\n<p>Cash on Delivery wins orders in markets where card trust is low. It also produces refused parcels, return shipping bills, and stock that sits on a van for two days before coming back.<\/p>\n\n<p>This plugin gives you three separate tools against that, and lets you switch each one on independently.<\/p>\n\n<h4>Charge for the service<\/h4>\n\n<p>Add a fixed fee, a percentage, or both to Cash on Delivery orders. Put a floor and a ceiling on it. Waive it above a cart value so your best customers still feel looked after. Choose whether it is taxable and which tax class applies. Write the label and the checkout explanation in your own words.<\/p>\n\n<h4>Decide who gets Cash on Delivery<\/h4>\n\n<p>Hide COD when the cart falls outside what you can afford to deliver on trust:<\/p>\n\n<ul>\n<li>Minimum and maximum order value<\/li>\n<li>Maximum cart weight and maximum item count<\/li>\n<li>Country, state or province, city, postcode<\/li>\n<li>Postcodes accept wildcards, so <code>54*<\/code> covers a whole city<\/li>\n<li>Chosen shipping method<\/li>\n<li>Specific products or whole product categories<\/li>\n<li>User role, and whether the customer is logged in<\/li>\n<li>Whether a billing phone number has been filled in<\/li>\n<\/ul>\n\n<p>Every rule has three settings: no restriction, allow only this list, or block this list.<\/p>\n\n<h4>Collect part of the money up front<\/h4>\n\n<p>Ask for a percentage or a fixed amount online at checkout, and let the courier collect the rest. A customer who has paid something real is far more likely to answer the door.<\/p>\n\n<p>The split is recorded on the order, shown on the thank you page and in the customer's account, printed in order emails, listed in a <strong>Balance due<\/strong> column on the Orders screen, and marked collected with one click when the cash comes back.<\/p>\n\n<p>You can offer it as a choice, or require it before Cash on Delivery is available at all.<\/p>\n\n<h4>Block the customers who keep doing it<\/h4>\n\n<p>Add individual email addresses, whole email domains, or phone numbers to a list and Cash on Delivery quietly disappears for them. Phone matching ignores formatting, so <code>0300-1234567<\/code> and <code>+923001234567<\/code> are treated as the same number.<\/p>\n\n<p>There is also an automatic option: count a customer's cancelled or failed COD orders over a period you choose, and withhold Cash on Delivery once they cross your limit.<\/p>\n\n<h4>Built to be trusted with money<\/h4>\n\n<p>Part payment changes what a customer is charged, so it is built with that seriously in mind.<\/p>\n\n<ul>\n<li><strong>Orders add up.<\/strong> The order keeps its real line items and tax. A single negative line brings the amount charged down to the advance, so items plus tax plus shipping plus fees equals the total. Nothing is hidden in metadata where your reports cannot see it.<\/li>\n<li><strong>It fails towards you, never away from you.<\/strong> If anything else on your site changes the total after the reduction is calculated, the advance is abandoned for that checkout and the customer is charged in full. There is no path where a mismatch results in undercharging.<\/li>\n<li><strong>You can check the numbers before going live.<\/strong> A dry-run calculator takes a hypothetical order and shows the exact breakdown, including whether it reconciles.<\/li>\n<li><strong>Everything ships switched off.<\/strong> Installing this plugin changes nothing until you deliberately enable a module.<\/li>\n<li><strong>Nothing leaves your site.<\/strong> No external service, no API key, no account.<\/li>\n<\/ul>\n\n<h4>Works with<\/h4>\n\n<ul>\n<li>High-Performance Order Storage<\/li>\n<li>Any online payment gateway for the advance portion<\/li>\n<li>Multisite, with settings kept per site<\/li>\n<li>Fully translatable, including every customer-facing string<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install through <strong>Plugins \u2192 Add New<\/strong>, or upload the folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Confirm Cash on Delivery is enabled under <strong>WooCommerce \u2192 Settings \u2192 Payments<\/strong>. None of these rules do anything while it is switched off.<\/li>\n<li>Go to <strong>WooCommerce \u2192 COD &amp; Advance<\/strong>. Every module starts off.<\/li>\n<li>Turn on one module. Test it. Then turn on the next.<\/li>\n<\/ol>\n\n<p>If you plan to use part payment, test it on a staging copy of your store first, with your real payment gateways, your tax settings, and a coupon applied. It changes what customers are charged and deserves that care.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20advance%20payment%20need%20a%20special%20gateway%3F\"><h3>Does the advance payment need a special gateway?<\/h3><\/dt>\n<dd><p>No. The advance is charged through whichever online gateway the customer already uses. The plugin does not process payments itself.<\/p><\/dd>\n<dt id=\"how%20does%20part%20payment%20appear%20in%20my%20revenue%20reports%3F\"><h3>How does part payment appear in my revenue reports?<\/h3><\/dt>\n<dd><p>WooCommerce reports show the money you have actually received, which is the advance. The Reconciliation tab shows what is still owed, with a CSV export. Read the two together and you have the full picture.<\/p>\n\n<p>This is a deliberate choice. The alternative is inflating today's revenue with cash that has not arrived and may never arrive.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20the%20balance%3F\"><h3>What happens to the balance?<\/h3><\/dt>\n<dd><p>It is recorded on the order and shown to the customer on the thank you page, in their account, and in order emails. Your team sees it in the <strong>Balance due<\/strong> column on the Orders screen. When the rider brings the cash back, open the order and click <strong>Mark balance as collected<\/strong>.<\/p><\/dd>\n<dt id=\"how%20is%20tax%20handled%20on%20a%20part%20payment%20order%3F\"><h3>How is tax handled on a part payment order?<\/h3><\/dt>\n<dd><p>Tax is calculated on the goods at their real value, before the balance is deferred. In practice the advance settles the tax first. The Diagnostics tab flags this so you can confirm it matches how your accountant works.<\/p><\/dd>\n<dt id=\"can%20a%20blocked%20customer%20get%20around%20it%3F\"><h3>Can a blocked customer get around it?<\/h3><\/dt>\n<dd><p>Yes, by using a different email address and phone number. Blocking matches what is entered at checkout, so treat it as friction that discourages repeat offenders rather than as fraud prevention. The plugin says so in the admin too.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block-based%20cart%20and%20checkout%3F\"><h3>Does it work with the block-based Cart and Checkout?<\/h3><\/dt>\n<dd><p>The fee, the availability rules and customer blocking all work, because they run on the server. The part payment selector currently needs the classic checkout shortcode. Compatibility is declared honestly in the plugin header, so WooCommerce will tell you rather than letting it fail quietly.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20my%20checkout%20down%3F\"><h3>Will it slow my checkout down?<\/h3><\/dt>\n<dd><p>No. The rules are in-memory checks against the current cart. The only database lookup is the optional automatic blocking query, which runs once per checkout session.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20switch%20a%20module%20off%2C%20or%20uninstall%3F\"><h3>What happens to my data if I switch a module off, or uninstall?<\/h3><\/dt>\n<dd><p>Switching a module off stops it immediately and leaves its settings alone. Order records are never touched, by either. Settings are only deleted on uninstall if you asked for that on the Advanced tab.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Rebuilt part payment so orders reconcile: line items now add up to the amount charged, instead of the balance living only in metadata.<\/li>\n<li>Added verification of the final checkout total. A reduction that cannot be reconciled is abandoned and the customer is charged in full.<\/li>\n<li>Added independent module switches. Every module now ships switched off.<\/li>\n<li>Added the Reconciliation report, with CSV export.<\/li>\n<li>Added the Diagnostics tab: dry-run calculator, configuration warnings, and recent activity.<\/li>\n<li>Added an activity log for events that affect money.<\/li>\n<li>Fixed the Cash on Delivery fee being applied from a stale payment method selection.<\/li>\n<li>Fixed an availability caching bug that could reuse a decision made from partly calculated totals.<\/li>\n<li>Order value is now shown to the customer alongside the advance and the balance.<\/li>\n<li>Guarded against recording the same collected balance twice.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Charge a fee for Cash on Delivery, decide exactly who can use it, and collect part of the payment online before the courier leaves.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/345210","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=345210"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/phonedigg"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=345210"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=345210"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=345210"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=345210"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=345210"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=345210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}