DZ COD Order Form

DZ COD Order Form

By mrdhia
Details
View on WordPress

Most Algerian online stores sell with cash on delivery (COD). Customers do not want a cart, an account or a long checkout: they want to type their name and phone, pick their wilaya and commune, and confirm. This plugin puts that form directly on the product page and creates a normal WooCommerce order.

Features

  • All 69 wilayas (including the 11 created in 2025) and 1541 communes, in Arabic or Latin script.
  • Commune list filtered by the chosen wilaya.
  • Delivery price per wilaya, separately for home delivery and stop desk (office pickup). Disable wilayas you do not deliver to. Optional free delivery above an amount.
  • Form fields you control: show/hide, required, label and placeholder for every field, plus optional second phone, email and order note, and up to 6 custom fields (text, long text, dropdown, checkbox) saved on the order.
  • Import delivery prices automatically from Yalidine, ZR Express or your Ecotrack courier, or from a Google Sheet (template included, optional daily sync). New wilayas get their former wilaya’s price.
  • Quantity offers per product: clickable packs like “1 for 3,500 · 2 for 6,000 · 3 for 8,000”, with a fixed pack price or a % discount, optional badge (“Best value”) and free delivery per pack. Prices are always recalculated on the server.
  • Abandoned orders: visitors who type a valid phone number but do not confirm are saved (after a 15-minute grace period) in WooCommerce Abandoned orders, with call and WhatsApp buttons and one-click “Create order”. Automatically deleted after a period you choose.
  • Confirmation desk (WooCommerce Confirm orders): call new orders and record the outcome in one click — confirmed, no answer, call later, cancelled — with WhatsApp messages, automatic cancel after N unanswered calls, and per-agent statistics.
  • Parcel tracking: delivered / returned / in transit pulled from Yalidine, ZR Express and Ecotrack every 3 hours; orders move to Completed or the new “Returned (refused)” status automatically.
  • Customer history and repeat refusers: every order shows how many earlier parcels the phone number accepted or refused; repeat refusers can be put on hold or refused.
  • Meta Conversions API and TikTok Events API: server-side Purchase events deduplicated with the browser pixels, with the option to count a purchase only when the order is confirmed by phone.
  • Free delivery per product: choose which products ship free — home, stop desk or both, everywhere or only in the wilayas you pick. The form shows a “Free delivery” badge and the fee is removed on the server.
  • Request a feature screen: ask for features or another delivery company, or report a problem, straight from WordPress.
  • One-click upsell after the order: add a discounted product to the same order with one tap.
  • COD dashboard: orders, confirmation rate, delivery rate, cash collected, losses on returns, best products and wilayas.
  • Arabic and French included.
  • Live order summary: product, delivery, total.
  • Simple and variable products, quantity selector.
  • Anti-fraud: Algerian phone validation (+213 accepted), duplicate detection by phone (block, or accept and put On hold), blocked phone list, per-IP rate limit, bot honeypot.
  • Google Sheets export through a small Google Apps Script (no Google account connection needed). Status changes update the sheet.
  • Delivery companies: send orders to Yalidine, ZR Express and any courier on the Ecotrack platform (DHD, Conexlog/UPS, Rex, MSM Go, Rocket, 48hr, Golivri, EcoRapide and more: paste its address). One click per order, bulk sending from the orders list, or automatic sending when an order reaches a status you choose. Tracking number and label saved on the order and pushed to Google Sheets.
  • CSV export of form orders (opens correctly in Excel with Arabic).
  • Fires Meta Pixel Purchase, TikTok CompletePayment and GA4 purchase events if those pixels are already on your site, plus a dzcod:order JavaScript event for custom tracking.
  • Shortcode [dzcod_form], automatic placement on product pages, and an Elementor widget.
  • Works with full-page caching (nonce is refreshed automatically).
  • RTL ready. Compatible with WooCommerce HPOS.

Developers

Filters: dzcod_free_delivery, dzcod_ecotrack_hosts, dzcod_leads_per_hour, dzcod_meta_api_version, dzcod_locations, dzcod_is_valid_phone, dzcod_antifraud_result, dzcod_sheets_row, dzcod_auto_insert_for_product, dzcod_client_ip, dzcod_courier_providers, dzcod_courier_parcel, dzcod_courier_payload, dzcod_courier_logo, dzcod_offers.
Actions: dzcod_before_order_save, dzcod_order_created, dzcod_order_confirmed, dzcod_parcel_created, dzcod_parcel_status, dzcod_lead_recovered, dzcod_upsell_accepted.

Source code, build-free (no compiled files), and issues: https://github.com/xthegodfatherx/dz-cod-order-form

External services

This plugin only contacts outside services that you configure yourself:

  • Google Apps Script (Google): when you enter a web app URL, each new order (name, phone, wilaya, commune, address, products, totals, status) is sent to your own script so it can be written to your Google Sheet. Terms, Privacy.
  • Your delivery company: only when you connect one in the Couriers tab and send an order (manually, in bulk or automatically), the customer name, phone, wilaya, commune, address, products, order number and amount to collect are sent to that company’s API so it can create the parcel. When you click “Import” on the Delivery prices tab, the company’s price list is read from the same API (nothing about your customers is sent). The company is the one you choose:

    • Yalidine (api.yalidine.app): creates parcels, reads their status and delivery prices. Transport conditions, Privacy policy.
    • ZR Express (procolis.com, the API of ZR Express): creates parcels, reads their status and delivery prices. Privacy policy. ZR Express publishes no separate terms of use; the terms are those of your contract with ZR Express.
    • A courier that runs on the Ecotrack platform: you type your own courier’s Ecotrack address (it must end with .ecotrack.dz) and the token that courier gave you; the plugin contacts only that address. The terms and privacy policy that apply are those of the courier you signed a contract with; ask that courier for them before connecting it.
  • Parcel tracking: when parcel tracking is on, the tracking numbers of your parcels are sent to the same delivery company every 3 hours to read their status.

  • Meta Conversions API (Meta Platforms): when you enter a dataset ID and access token, a Purchase event is sent to graph.facebook.com for each order (or each confirmed order). It contains the order value, currency, product IDs and quantities, the order number, the page address, the visitor’s IP address and browser, the _fbp / _fbc cookies, and the phone number, first name and commune hashed with SHA-256. Terms, Privacy.
  • TikTok Events API (TikTok): when you enter a pixel code and access token, a CompletePayment event with the same kind of data (phone hashed with SHA-256, IP address, browser, _ttp cookie, order value and products) is sent to business-api.tiktok.com. Terms, Privacy.

  • Delivery price import from Google Sheets (Google): when you paste a sheet link and click “Import from sheet now”, the sheet is downloaded as CSV from docs.google.com (or from the CSV address you entered). With the daily sync option, it is downloaded once a day. Nothing about your customers is sent. Terms, Privacy.

  • GitHub (feature requests): the “Request a feature” screen does not contact any server. Only when you click “Continue on GitHub” does your browser open github.com with the text you typed (and, if you leave the box ticked, the plugin, WordPress, WooCommerce and PHP version numbers). Terms, Privacy.

Nothing is sent anywhere until you configure these services. The Meta and TikTok server events are off by default: they are tracking tools, so only switch them on if your visitors have agreed to it where your law requires consent (for example through your cookie banner), and mention them in your privacy policy.

Details

Plugin code:
dz-cod-order-form
Plugin version:
1.5.3
Author:
Outdated:
No
WP version:
6.3 or higher
PHP version:
7.4 or higher
Test up to WP version:
7.1.4
Total installations:
0
Last updated:
2026-11-07
Rating:
Times rated:
0
algeria
cash-on-delivery
wilaya
yalidine
zr-express