Description
WeftKart Shipping & Tracking connects your WooCommerce store to WeftKart, so every shipment tracks itself from the order screen straight through to “Delivered” — no daily courier-site checking, no manually emailing customers a tracking link.
- One-click connect — authorize from your WeftKart dashboard, no API keys to copy-paste by hand.
- Order-edit meta box — add a tracking number and courier and WeftKart registers the shipment automatically; split shipments (several parcels per order) are fully supported.
- Live status sync — a configurable Status Mapping keeps the WooCommerce order status (Processing, Shipped, Delivered, …) matched to the real courier status, with no polling needed.
- Failed-delivery alerts — get notified the moment a shipment hits NDR, an exception or RTO, before the customer has to ask.
- Customer tracking page — a branded
[weftkart_tracking]page and an automatic panel on the order-received / My Account screens, so customers can self-serve instead of emailing support. - CSV import/export — bulk-load tracking numbers for orders placed outside WooCommerce, or export the Shipments list for reporting.
- Analytics — delivery-time and on-time-rate trends per courier, right inside wp-admin.
- Help & Support — open a support ticket from wp-admin (with the order, tracking number and courier pre-filled from the order screen), see its status and find your Merchant ID.
- WP-CLI —
wp weftkart status|sync|checkfor servers and deploy scripts.
Requires an active WeftKart account (free to create) and WooCommerce 7.0+.
External services
This plugin is a WooCommerce-side connector to WeftKart, a shipment-tracking service (a free plan is available; shipment volume beyond that requires a paid plan on your WeftKart account — nothing in this plugin’s own code is limited or gated, all limits are on your WeftKart account’s plan). Connecting your store sends the following to WeftKart’s servers, only for the actions below — never automatically or in the background:
- When you click “Connect to WeftKart”: your store URL and a generated WooCommerce API key, so WeftKart can register the shipment-tracking endpoint. Terms of Use · Privacy Policy
- When a tracking number is added to an order (by you, by CSV import, or automatically if you enable that): the tracking number, courier, order number, and the customer’s name, email, phone and shipping address — so WeftKart can look up and monitor the shipment, and, if you turn it on, notify the customer.
- If you turn on the optional “COD risk” setting (off by default): when you open the edit screen of a cash-on-delivery order, that customer’s phone number is sent to WeftKart to look up a Low/Medium/High risk read from COD delivery history (your store’s own, plus anonymous aggregate counts across WeftKart — never another store’s identity or order details). Nothing is sent while the setting is off.
-
If you turn on the optional “Abandoned cart recovery” setting (off by default): what’s in a customer’s cart, and their phone/name/email once they type it at checkout, while they are still on the checkout page and before they place the order — so WeftKart can send a WhatsApp reminder if they leave without finishing.
-
If you open a support ticket from WeftKart Help & Support: the ticket text you write and the optional order number, tracking number and courier you fill in. While the “Include technical details” box on that form is ticked (it lists every value before you send), also your store address and the plugin, WordPress, WooCommerce and PHP versions and site language. Nothing is sent unless you press “Submit ticket”.
The plugin also adds suggested wording to your own site’s Privacy Policy page (Settings Privacy) describing exactly this, and a “Powered by WeftKart” credit on the customer tracking panel is off by default (Settings General to turn it on).
Screenshots






Installation
- Upload the plugin folder to
/wp-content/plugins/, or install the zip directly from the Plugins Add New screen. - Activate it (WooCommerce must already be installed and active).
- Go to WeftKart in the wp-admin menu, enter your WeftKart instance URL, save, then click “Connect to WeftKart.”
- Review the Status Mapping table and adjust to taste.
FAQ
-
Do I need a WeftKart account?
-
Yes — this plugin is the WooCommerce side of a WeftKart account. Create one free at weftkart.com, then use the in-plugin “Connect to WeftKart” button.
-
Does this replace WooCommerce’s own order statuses?
-
No. It maps courier shipment statuses onto your existing (or custom) WooCommerce order statuses via the Status Mapping table — nothing about your checkout or order flow changes.
-
What happens to my data if I deactivate the plugin?
-
Nothing is removed on deactivation. Uninstalling removes the plugin’s own settings and scheduled job only — order tracking numbers and history already saved on your orders are kept.
-
Where do I report a bug or ask for help?
-
From wp-admin: WeftKart Help & Support opens a ticket straight to the WeftKart team (you can also use your WeftKart dashboard).
Reviews
There are no reviews for this plugin.
Contributors & Developers
“WeftKart Shipping & Tracking” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “WeftKart Shipping & Tracking” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.2.0
- New: WeftKart Help & Support. Open a support ticket without leaving wp-admin, see your recent tickets and their status, open any of them on WeftKart with one click, and copy your Merchant ID. Optional technical details (store address and plugin / WordPress / WooCommerce / PHP versions) can be attached; the form lists exactly what is sent.
- New: a “Need help with this order?” link on the order screen opens that form with the order number, tracking number and courier already filled in.
2.1.0
- Updates now come from WordPress.org only — the separate self-hosted updater is gone.
- New: the order-screen COD Risk panel is an opt-in setting (Settings General, off by default). When you turn it on, the customer’s phone number is sent to WeftKart to look up a risk read, only when you open a cash-on-delivery order; this is described under “External services”.
- Added a COD Risk panel to the order screen for cash-on-delivery orders (see above), with your store’s own COD history and aggregate, anonymous WeftKart-wide counts.
2.0.6
- Fixed: a tracking number added on the order screen now sends the order’s shipping (or billing, if no separate shipping address) address to WeftKart along with the recipient’s name, email and phone — this was documented in “External services” above but the code never actually sent it, so the customer’s address on WeftKart stayed empty.
- The order-screen COD Risk panel now also shows a WeftKart Platform-wide signal — aggregated COD delivery history for that phone number across every store on WeftKart, useful context for a customer who is new to your store but has an established (good or bad) COD track record elsewhere. Never reveals another store’s identity, order details or any other private data — only aggregate counts.
2.0.5
- Added a COD Risk panel to the order screen for cash-on-delivery orders: a Low/Medium/High read based on that customer’s past COD delivery history on WeftKart, with the order count it’s based on. Estimated, not a guarantee — shown with that disclaimer every time.
2.0.4
- Addressed WordPress.org’s manual review: dynamic per-store CSS/JS now go through wp_add_inline_style()/wp_add_inline_script() instead of a raw
<style>/<script>tag, a nonce is sanitized before verification, a plain-text email URL uses the correct output-escaping function, a JS global was given the plugin’s own prefix, a “orders waiting to sync” notice only appears on relevant screens (was every wp-admin page), and a merchant-defined custom status’s count label no longer runs a runtime string through the translation system (it never had a fixed English phrase to translate in the first place).
2.0.3
- Passed the official Plugin Check tool clean (zero errors): added translator comments throughout, switched
parse_url()towp_parse_url(), tightened output escaping, and removed the last discouraged pattern. - The one-click updater (self-hosted installs only — WordPress.org does not allow a plugin to manage its own updates) is now a separate file the WordPress.org release build ships without; everything that reads it checks it’s there first, so nothing breaks either way.
2.0.2
- Prepared for the WordPress.org Plugin Directory: added the required “External services” disclosure above (what’s sent to WeftKart, when, and why, with Terms of Use / Privacy Policy links), standard header fields, and made the “Powered by WeftKart” credit on the customer tracking panel opt-in — off by default — instead of always shown.
2.0.1
- Polished the “View details” popup and the download page: a real description with feature highlights, an FAQ tab, a proper author/homepage link, and a “Tested up to” bump so the WordPress compatibility warning stops showing on current WordPress.
- The plugin now reports its own version on every WeftKart API call, so the WeftKart dashboard can show which connected stores are on the latest release.
2.0.0
- Renamed: the plugin is now WeftKart Shipping & Tracking. Every internal name (the plugin folder, option and order-meta keys, REST routes, WP-CLI command) has been fully switched over — nothing from the old product name remains. Your connection, settings, tracking numbers and order history are carried over automatically the moment this version activates; there is nothing to reconfigure.
- The shortcode is
[weftkart_tracking]and WP-CLI iswp weftkart …. The earlier short-lived aliases from the 1.9.0 rename have been removed — update any page or script still using the old ones.
1.9.5
- New: Abandoned cart recovery — turn it on under Settings General and WeftKart can send a customer a WhatsApp reminder if they start checkout but never finish within 45 minutes. Off by default; needs both this switch and “Abandoned cart recovery” under WhatsApp Settings on your WeftKart dashboard (with marketing consent confirmed there).
1.9.4
- Fixed: the WeftKart icon in the wp-admin menu was shown far too large (40 px instead of 20 px). It is now the right size, sharp on retina screens, on a solid tile so it stays visible on any admin colour scheme.
- New: the WeftKart plugin icon and banner now show in WordPress’s Updates screen and in the plugin’s “View details” popup (they showed a generic icon before).
1.9.3
- The WeftKart symbol in the header of every WeftKart screen and in the wp-admin menu now matches the final logo.
1.9.2
- New WeftKart logo and icon: the header of every WeftKart screen and the wp-admin menu entry now use the new symbol.
1.9.1
- WeftKart now lives at weftkart.com: that is the default address in the plugin. Stores already connected keep working; if yours still shows the former address, update it under WeftKart Settings.
1.9.0
- Renamed: the product is now WeftKart. The plugin name, every screen, email, message and download now say WeftKart.
- Nothing to reconfigure: your connection, settings, tracking numbers and order data are untouched. The internal storage names (option and order-meta keys, the plugin folder) are unchanged on purpose so an update never loses data.
- The shortcode is now
[weftkart_tracking]and WP-CLI iswp weftkart …; the earlier names keep working, so existing pages and scripts need no change. - Webhooks are now signed with the
X-WeftKart-Signatureheader; the previous header name is still accepted.
1.8.0
- New: split shipments — one order can now carry several tracking numbers (one per parcel). Add as many as you need from the order screen (“Add another parcel”), each with its own courier; every parcel is registered with WeftKart and tracked on its own.
- The order becomes Delivered only when every parcel is delivered; a problem on any parcel (NDR / Exception / RTO) shows on the order straight away, otherwise the slowest parcel decides. Your Status Mapping is applied to that combined status.
- Mark delivered by hand per parcel, or “Mark all delivered”; the order itself only moves once the last parcel is delivered. A courier update can no longer undo a parcel you marked delivered (except its final statuses).
- Orders list: every tracking number of the order is shown, with a “1 of 2 delivered” progress line. Searching the Orders list by any of an order’s tracking numbers finds it.
- Customers: the My Account / Track Order card lists each parcel with its own status and a Track button; the tracking panel gets a tab per parcel. Guests who pass the order-number + email lookup can now open the panel too (it was blocked for them before).
- Emails: the tracking email, the “Track your shipment” block in WooCommerce emails, and the Share message list every parcel. The automatic email is sent once per change, not once per parcel. Store alerts (NDR / Exception / RTO) are per parcel and name the tracking number.
- CSV import: put the same order on several rows to give it several parcels; a number the order already has is left as it is (an import now adds, it no longer replaces).
- Fixed: CSV import no longer triggers a PHP deprecation notice on PHP 8.4.
- Existing single-shipment orders keep working untouched — they are read as an order with one parcel, no migration.
1.7.2
- Fixed: the shipment status shown on the Orders list and order screen could stay on “Pending” (its value when the tracking number was first saved) even after the shipment was In Transit / Delivered. It now follows every update, and
wp weftkart sync --labels-onlycorrects old ones without touching order statuses. - Fixed: when one tracking number is on several orders (a combined shipment), every one of those orders now receives the updates — before, only the first was updated.
- Fixed: an order you marked as delivered by hand is no longer moved backwards by a later, earlier-stage courier update.
1.7.1
- New: a banner when your WeftKart account has no active plan (Choose a plan), and clearer wording when orders are waiting because there are no shipment credits.
1.7.0
- Fixed: the WeftKart column on the Orders screen was missing on stores using HPOS (WooCommerce’s default for new stores) — it existed only on the classic orders list. It now appears on both, so bulk actions also work on both.
- New: Orders screen column shows the courier name, the tracking number (click = opens the tracking page), the live status and quick icon buttons: mark as delivered, share tracking, and retry when waiting for credits. “Screen Options” lets each user show/hide those parts.
- New: “Mark as delivered” by hand — icon on the Orders list, a button on the order screen, an Order action and a bulk action. Uses your Status Mapping for Delivered.
- New: “Share tracking” on the Orders list and the order screen — WhatsApp, email, copy message, copy link. Nothing is sent by the plugin; it opens the customer’s chat / your mail app with the message filled in.
- New: order screen — “Mark order as Shipped” box (ticked by default when you add a tracking number) so saving tracking ships the order and WeftKart then tracks it automatically. The Shipped status is configurable (Settings General Shipping). CSV import ships orders too.
- New: shipment credits — when credits run out the tracking number is still saved and the order still ships; the order shows “Waiting for credits”, a banner explains it with Upgrade / Try again buttons, waiting orders start tracking on their own once credits return, and an optional email warns when credits run low or out.
- New: “Track your order” page — one click creates a page with the [weftkart_tracking] shortcode (Settings General). Customers enter order number + email and the tracking panel opens. The panel’s styling/timeline now also load on the thank-you page and on any page that uses the shortcode (they used to load on My Account only). Redesigned the lookup form and tracking card.
- New: Shipments — “Shipments per page” in Screen Options.
- New: one-click plugin updates — new versions show up on the Plugins screen (and can auto-update) straight from your WeftKart account; no more re-uploading the zip.
- New: Orders screen — search orders by tracking number, filter by shipment state (has / no tracking, needs attention, or an exact status), and two new “Order actions”: refresh the shipment status and email tracking to the customer. Works with both the HPOS orders table and classic orders.
- New: Automation — optionally email the customer their tracking details the first time a tracking number is registered (sent once per tracking number), and optionally catch up on missed status updates every 6 hours. “Sync now” runs the catch-up on demand.
- New: Analytics — shipments-per-day chart and a Courier performance table (delivered %, problems, RTO, average days, on-time %) with “Fastest” and “Most problems” badges, so you can see which courier works best for your store.
- New: Shipments — quick-filter chips with counts (All / In transit / Delivered / Needs attention) and bulk “Mark selected as resolved”.
- New: WP-CLI —
wp weftkart status,wp weftkart sync,wp weftkart check. - New: Privacy — suggested privacy-policy text for what the plugin sends to WeftKart; Uninstall now removes the plugin’s settings and scheduled job (order tracking data is kept).
- Changed: Overview shows a banner when a new plugin version is available.
1.6.1
- Fixed: clicking “Run checks” under Settings Tools & logs caused a critical error (a call to a WordPress function that does not exist). The HTTPS check now works.
1.6.0
- Redesigned: a completely new look across every WeftKart screen — branded header with navigation, cards, tables, status pills and buttons that match the WeftKart website; bundled fonts (no external requests); works on phones.
- New: Overview page — shipment KPIs, what needs attention (with one-click Mark resolved), plan & credit usage, setup checklist and recent activity.
- New: Settings reorganised into General / Couriers / Order statuses / Status mapping / Notifications / Tools & logs. Courier list has search + select all.
- New: Customer experience switches — the order-page tracking panel, the “Track” button in My Account and (new) a tracking link inside WooCommerce customer emails can each be turned on or off.
- New: Email alerts when a shipment hits NDR / Exception / RTO (off by default; one email per order and status, with a “Send a test email” button).
- New: Import tracking numbers for many orders from a CSV (sample file included) and export the Shipments list (respecting filters) to CSV.
- New: Order screen — live shipment timeline, copy tracking link, and “Email customer” to send the tracking details in one click.
- New: Tools & logs — connection health checks, webhook URL with copy button, copy-paste support info and a 100-entry activity log.
- New: Dashboard widget now shows in-transit / delivered / needs-attention counts.
- Fixed: order numbers showed a double “#” in some lists.
- Changed: minimum PHP is now 8.0 (the plugin already relied on PHP 8 syntax).
1.5.2
- New: the order’s billing phone number is now sent to WeftKart along with the customer’s name and email, so it is saved on the shipment automatically (used for WhatsApp updates). Any phone format works — WeftKart saves it as +. An unreadable number is simply ignored; it never stops a shipment being registered.
1.5.1
- Fixed: the Refresh icon button (Shipments/Billing/Analytics) wasn’t the same height as the button next to it — sized by its icon’s natural size instead of matching wp-admin’s fixed 30px button height, so the pair looked misaligned/broken.
1.5.0
- Fixed: Plan & Billing and Analytics pages were rendering with ZERO plugin styling (a plugin-registration bug — their screens were never added to the CSS-loading list) — both looked like bare, unstyled wp-admin defaults. Now styled correctly.
- Redesigned: Analytics is now one combined “Shipment Mix” panel — donut chart + legend on the left, 3 icon-led KPI rows (Avg. Delivery, On-Time %, Exception Rate) on the right, instead of two disconnected blocks.
1.4.0
- Faster: Shipments, Plan & Billing, and Analytics pages are now cached (60s / 5min / 15min respectively) instead of making a live call to WeftKart on every single page view — each has a manual refresh button (circular arrow, top right) for when you want the latest right now.
- Faster: every admin-facing API call now times out in 8 seconds instead of 15, so a slow connection fails fast instead of holding the page open.
- Redesigned: Analytics page now shows a Shipment Mix donut chart (same one the WeftKart website uses) alongside the stat tiles, instead of just four bare numbers.
- Fixed: resolving a shipment from the Shipments page now always shows the up-to-date list immediately, instead of possibly still showing the old “Mark Resolved” button from a cached view.
1.3.0
- Added: Plan & Billing page — shipment credits used/remaining, renewal date, recent payments, right in wp-admin.
- Added: Analytics page — 30-day shipments/on-time-delivery/exception-rate snapshot, right in wp-admin.
- Changed: Settings page split into tabs (Couriers / Order Statuses / Status Mapping) — a store with many couriers no longer dumps everything into one long, cramped page.
- Changed: “More on WeftKart” panel trimmed to only what’s still website-only (Branding, Webhooks, Team, API Keys) now that Shipments/Billing/Analytics live in the plugin.
1.2.0
- Fixed: “Open in WeftKart” / “Open Full Dashboard” buttons now actually sign you in instead of dropping you on the login screen — the backend endpoint they call was missing.
- Fixed: The Shipments page now actually loads your shipment list, stats, and Mark Resolved action — same missing-backend-endpoint issue.
- Added: Quick Links panel (Branding, Webhooks, Usage & Analytics, Team, API Keys, Billing) — one click, no re-login, for everything the plugin doesn’t bring in-line yet.
- Added: WeftKart branding (logo, brand color) on every plugin screen.
1.1.0
- Shipments page, dashboard widget, courier catalog picker, custom order statuses.
1.0.0
- Initial release: Connect flow, order meta box, webhook receiver, status mapping, customer tracking widget.