✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount
✨ New Plugin Alert ✨ SleekRank is now available with €50 launch discount

SleekView for WooCommerce Cash on Delivery Fee: COD orders as tables

Read directly from wc_orders filtered by payment_method=cod and join wc_order_items rows of type fee for the COD surcharge. Sort, filter, and inline-edit cash-on-delivery orders without opening each one.

♾️ Lifetime License available

SleekView table view for WooCommerce Cash on Delivery Fee

Cash-on-delivery deserves its own queue

WooCommerce stores cash-on-delivery orders the same way it stores card payments: in wc_orders (HPOS) or shop_order posts (legacy), with payment_method=cod as the discriminator. The Cash on Delivery Fee plugin adds a fee line to each order as a row in wc_order_items of type fee, with the actual amount on wc_order_itemmeta. The default Orders screen does not split COD out, does not show the COD fee as a column, and does not group orders by shipping country so couriers can plan collection runs.

SleekView reads wc_orders with a saved filter on payment_method=cod and joins wc_order_items for the fee line. Shipping address columns come from wc_order_addresses. Total, COD fee, and net amount due on collection live side by side in the same row.

Inline status edits route through WooCommerce's CRUD layer so the woocommerce_order_status_changed hook fires normally. Mark a courier-collected batch of COD orders as completed in one pass, or bulk-flip failed-collection orders to a custom status, all without losing the audit trail.

Workflow

How SleekView reads your COD WooCommerce schema

1

Pick the source tables

Choose wc_orders (or shop_order on legacy) and add joins to wc_order_items (filtered by type fee) and wc_order_addresses.
2

Compose your COD column set

Add order number, status, customer, total, the joined COD fee amount, shipping city and country, and the order date.
3

Save and scope the view

Name it ("COD Warsaw today", "COD failed collections") and gate by WordPress capability so courier coordinators, finance, and support each get their own view.
4

Edit inline and bulk-update

Bulk-flip processing COD orders to completed after courier collection, or move uncollected ones to a custom failed-collection status, all through WooCommerce CRUD.

Sample columns

A typical COD orders view

SleekView joins wc_orders, wc_order_items (type fee), and wc_order_addresses for a courier-friendly view.
Source: wp_wc_orders + wp_wc_order_items + wp_wc_order_addresses (HPOS) or wp_posts + wp_woocommerce_order_items + wp_postmeta
Order # Status Customer Total COD fee Shipping city Date
#40712 Processing alex@studio.co €184.00 €4.00 Kraków Apr 24
#40711 Completed ria@design.io €72.50 €3.50 Warsaw Apr 24
#40710 On hold tom@hello.dev €312.00 €6.00 Poznań Apr 23
#40709 Failed mia@brew.coop €48.00 €3.00 Wrocław Apr 23

Comparison

Default WooCommerce Orders vs SleekView

Default WooCommerce Orders

  • Orders screen does not split COD orders into their own list
  • COD fee lines live in wc_order_items (type fee) and never surface as a column
  • Shipping city or country (from wc_order_addresses) is not in the orders list
  • Courier route planning requires manual CSV exports
  • Bulk-completing collected orders means clicking through each one

SleekView

  • Read wc_orders with a saved payment_method=cod filter
  • Join wc_order_items rows of type fee for the COD surcharge column
  • Surface wc_order_addresses shipping city and country as columns
  • Bulk-complete collected orders through WooCommerce CRUD
  • Save filtered views per courier zone or shipping region

Features

What SleekView gives you for WooCommerce Cash on Delivery Fee

COD-only filter views

Filter by payment_method=cod and save the view. Add shipping city or country and your courier coordinator gets a per-zone collection queue without leaving WP Admin.

Fee-line column from order items

Join wc_order_items rows of type fee and pull the amount from wc_order_itemmeta. COD surcharge displays as a real column alongside the order total.

Inline status with CRUD hooks

Flip processing COD orders to completed after courier collection. woocommerce_order_status_changed fires, so stock adjustments, emails, and reporting plugins update as expected.

Audience

Who uses SleekView for WooCommerce Cash on Delivery Fee

Courier coordinators

COD orders grouped by shipping city for collection routing. Bulk-flip to completed after the courier reports successful collection, or move uncollected ones to a custom failed-collection status.

Finance

Reconcile collected cash against COD orders. Net amount (total minus COD fee) visible inline; export the filtered set per courier or per day for the cash reconciliation desk.

Support

Search by customer email or phone (from shipping address) when a customer asks about a COD delivery slot. Inline-edit order notes during the call.

The bigger picture

Why cash-on-delivery operations break the default Orders screen

Cash on delivery is a major payment method in Eastern Europe, India, North Africa, and parts of Southeast Asia, with COD share of WooCommerce orders sometimes well above fifty per cent. The default WooCommerce admin was designed around card payments where the money is already in your account by the time you see the order. COD inverts that: the order is real, but the cash is in the courier's hands, the customer's hallway, or nowhere yet.

Operations teams need to plan collection routes by shipping city, reconcile collected cash against orders by day, and handle failed deliveries as a distinct workflow. The Cash on Delivery Fee plugin adds a useful surcharge, but the fee line lives in wc_order_items where the default admin does not expose it as a column. SleekView surfaces COD as a real workspace: filter by payment_method=cod, see the fee per order, group by shipping city, bulk-complete collected routes.

Same database, same hooks, same audit trail.

Questions

Common questions about SleekView for WooCommerce Cash on Delivery Fee

Yes. On HPOS (default since WooCommerce 8.2) SleekView reads wc_orders, wc_order_items, and wc_order_addresses. On legacy stores it joins shop_order posts to woocommerce_order_items and postmeta. The same column set works across both schemas.

 

Yes. The COD fee is stored as a row in wc_order_items with order_item_type=fee and the amount on wc_order_itemmeta under _line_total. SleekView joins these so the surcharge appears as a real column next to the order total.

 

Yes. wc_order_addresses on HPOS exposes shipping city, state, and country as joinable columns. Build a filtered view per courier zone, save it as "COD Warsaw" or "COD Kraków", and route planning happens inside WordPress.

 

Yes. SleekView writes through WooCommerce's CRUD layer, so woocommerce_order_status_changed, stock updates, and email triggers all fire as expected. Bulk-completing a route of COD orders triggers the same side effects as clicking through each one.

 

That is a plugin-configuration question rather than a SleekView one. If the WooCommerce Cash on Delivery Fee plugin adds the fee row to wc_order_items, SleekView will show it. If the plugin suppresses the fee for free-shipping orders, the join returns zero and the column shows blank or zero accordingly.

 

Yes. Scoped CSV export ships only the filtered rows with the columns you have configured, so the cash desk gets order number, total, COD fee, net amount, shipping city, and customer phone in one file ready to reconcile against cash collected.

 

Queries hit indexed columns on wc_orders. Filtering by payment_method, status, and date_created_gmt uses HPOS indexes. Joins to wc_order_items are by order_id which is also indexed. Pagination is keyset where possible.

 

Yes. Switch the same dataset to kanban grouped by order status. Drag cards between processing, on hold, completed, and failed, with the CRUD layer firing the same status-change hooks as the table.

 

Pricing

More than 1000+
happy customers

Explore our flexible licensing options tailored to your needs. Upgrade your license anytime to access more features, or opt for a lifetime license for ongoing value, including lifetime updates and lifetime support. Our hassle-free upgrade process ensures that our platform can grow with you, starting from whichever plan you choose.

Starter

€79

EUR

per year

  • 3 websites
  • 1 year of updates
  • 1 year of support

Pro

€149

EUR

per year

  • Unlimited websites
  • 1 year of updates
  • 1 year of support

Lifetime ♾️

Most popular

€249

EUR

once

  • Unlimited websites
  • Lifetime updates
  • Lifetime support

...or get the Bundle Deal
and save €250 🎁

The Bundle (unlimited sites)

Pay once, own it forever

Elevate your WordPress site with our exclusive plugin bundle that includes all of our premium plugins in one package. Enjoy lifetime updates and lifetime support. Save significantly compared to buying plugins individually.

What’s included

  • SleekAI

  • SleekByte

  • SleekMotion

  • SleekPixel

  • SleekRank

  • SleekView