{"id":357363,"date":"2026-08-24T13:49:48","date_gmt":"2026-08-24T13:49:48","guid":{"rendered":"https:\/\/me.wordpress.org\/plugins\/workparcel\/"},"modified":"2026-09-22T22:11:52","modified_gmt":"2026-09-22T22:11:52","slug":"workparcel","status":"publish","type":"plugin","link":"https:\/\/ar.wordpress.org\/plugins\/workparcel\/","author":23437003,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.1","stable_tag":"1.1.1","tested":"7.1.2","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Workparcel","header_author":"faav11_","header_description":"A lightweight parcel and shipment tracking system for WordPress.","assets_banners_color":"477ae9","last_updated":"2026-09-22 22:11:52","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":5,"author_block_rating":0,"active_installs":10,"downloads":286,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"favouradjenuvurhe","date":"2026-08-24 13:49:32","revision":3663564},"1.0.1":{"tag":"1.0.1","author":"favouradjenuvurhe","date":"2026-08-24 14:49:55","revision":3663709},"1.0.2":{"tag":"1.0.2","author":"favouradjenuvurhe","date":"2026-08-24 22:09:31","revision":3664328},"1.0.3":{"tag":"1.0.3","author":"favouradjenuvurhe","date":"2026-08-25 00:01:24","revision":3664399},"1.0.7":{"tag":"1.0.7","author":"favouradjenuvurhe","date":"2026-08-28 08:09:03","revision":3670005},"1.0.8":{"tag":"1.0.8","author":"favouradjenuvurhe","date":"2026-08-29 03:53:01","revision":3671093},"1.1.0":{"tag":"1.1.0","author":"favouradjenuvurhe","date":"2026-08-29 19:35:19","revision":3671843},"1.1.1":{"tag":"1.1.1","author":"favouradjenuvurhe","date":"2026-09-22 22:11:52","revision":3708178}},"upgrade_notice":{"1.1.1":"<p>Important fixes: REST updates no longer erase shipment data, event times use your site timezone, and driver names no longer appear on the public tracking page. Includes a small automatic database update (one new column).<\/p>","1.1.0":"<p>Moves the Scan tool to a shortcode (off by default), adds a Customers registry with auto-generated Scan IDs, and adds a toggleable REST API. Note: if you were using Workparcel \u2192 Scan in wp-admin before, that menu is gone \u2014 enable the new shortcode under Settings \u2192 Scan &amp; API instead.<\/p>","1.0.8":"<p>Adds a printable shipment invoice, redesigned emails, optional shipment\/Proof-of-Delivery photos, and a barcode scan tool for creating shipments, updating status, and driver assignment. Includes a safe automatic database update (new columns only).<\/p>","1.0.7":"<p>Adds company branding (logo, accent color), HTML email notifications for shipment updates, and a WordPress.org directory refresh (screenshots, SEO-focused description).<\/p>","1.0.6":"<p>Removes the boxed public tracking layout in favor of a plain, full-width, theme-agnostic design; polishes admin form fields; adds WooCommerce (HPOS-compatible) order tracking integration and developer hooks.<\/p>","1.0.5":"<p>Fixes the mobile tracking page zoom\/squeeze issue and adds a progress stepper, copy button, and richer shipment details to the public tracker.<\/p>","1.0.4":"<p>Critical fix for a fatal error affecting the Dashboard, Shipments, Add\/Edit Shipment, and Settings screens. Update immediately.<\/p>","1.0.2":"<p>Admin UI and branding refresh. No database changes; safe to update.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3670099,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3670099,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3670099,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3670099,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2","1.0.3","1.0.7","1.0.8","1.1.0","1.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3670099,"resolution":"1","location":"assets","locale":"","width":1200,"height":553},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3670099,"resolution":"2","location":"assets","locale":"","width":1200,"height":531},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3670099,"resolution":"3","location":"assets","locale":"","width":1200,"height":1272},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3670099,"resolution":"4","location":"assets","locale":"","width":1200,"height":924},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3670099,"resolution":"5","location":"assets","locale":"","width":1200,"height":602}},"screenshots":{"1":"Dashboard \u2014 shipment totals, status breakdown, and recent shipments at a glance.","2":"Shipments \u2014 a searchable, filterable list with color-coded status badges.","3":"Add\/Edit Shipment \u2014 sender, recipient, and shipping details organized into clear sections, plus the tracking timeline.","4":"Public tracking page \u2014 a plain, full-width, theme-agnostic tracker with a live progress stepper.","5":"Settings \u2014 company branding, your own accent color, and notification preferences."}},"plugin_section":[],"plugin_tags":[13827,45369,227743,55977,286],"plugin_category":[36],"plugin_contributors":[277241],"plugin_business_model":[],"class_list":["post-357363","plugin","type-plugin","status-publish","hentry","plugin_tags-delivery","plugin_tags-order-tracking","plugin_tags-parcel-tracking","plugin_tags-shipment-tracking","plugin_tags-woocommerce","plugin_category-analytics","plugin_contributors-favouradjenuvurhe","plugin_committers-favouradjenuvurhe"],"banners":{"banner":"https:\/\/ps.w.org\/workparcel\/assets\/banner-772x250.png?rev=3670099","banner_2x":"https:\/\/ps.w.org\/workparcel\/assets\/banner-1544x500.png?rev=3670099","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/workparcel\/assets\/icon-128x128.png?rev=3670099","icon_2x":"https:\/\/ps.w.org\/workparcel\/assets\/icon-256x256.png?rev=3670099","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/workparcel\/assets\/screenshot-1.png?rev=3670099","caption":"Dashboard \u2014 shipment totals, status breakdown, and recent shipments at a glance."},{"src":"https:\/\/ps.w.org\/workparcel\/assets\/screenshot-2.png?rev=3670099","caption":"Shipments \u2014 a searchable, filterable list with color-coded status badges."},{"src":"https:\/\/ps.w.org\/workparcel\/assets\/screenshot-3.png?rev=3670099","caption":"Add\/Edit Shipment \u2014 sender, recipient, and shipping details organized into clear sections, plus the tracking timeline."},{"src":"https:\/\/ps.w.org\/workparcel\/assets\/screenshot-4.png?rev=3670099","caption":"Public tracking page \u2014 a plain, full-width, theme-agnostic tracker with a live progress stepper."},{"src":"https:\/\/ps.w.org\/workparcel\/assets\/screenshot-5.png?rev=3670099","caption":"Settings \u2014 company branding, your own accent color, and notification preferences."}],"raw_content":"<!--section=description-->\n<p><strong>Workparcel<\/strong> turns WordPress into a full shipment management and parcel tracking system \u2014 for a courier business, a freight forwarder, a fulfillment team, or any WooCommerce store that ships physical products.<\/p>\n\n<p>Create shipments, generate tracking numbers automatically, log every status change as a tracking event, and give your customers a live, branded tracking page \u2014 right on your own site, with your own domain and your own logo. No third-party tracking service, no external subscription, no iframe.<\/p>\n\n<h4>Why Workparcel<\/h4>\n\n<ul>\n<li><strong>Built for shipping and logistics businesses<\/strong> \u2014 manage every shipment from a professional, purpose-built dashboard instead of spreadsheets.<\/li>\n<li><strong>Branded, not generic<\/strong> \u2014 your company name, logo, and accent color appear on the admin dashboard, the public tracking page, and shipment emails.<\/li>\n<li><strong>Works with WooCommerce<\/strong> \u2014 link any WooCommerce order to a shipment and its tracking status shows automatically on the customer's order page and order emails. High-Performance Order Storage (HPOS) compatible.<\/li>\n<li><strong>Real tracking history<\/strong> \u2014 every status change (Pending, Processing, Picked Up, In Transit, At Facility, Out for Delivery, Delivered, Failed Delivery, Cancelled) is logged with a location, a note, and a timestamp, and shown to customers as a visual progress stepper.<\/li>\n<li><strong>Automatic email notifications<\/strong> \u2014 shipment-created and status-update emails can go out to the sender, the receiver, and the site admin, using a clean HTML template with your branding. By default emails only send when a working SMTP sender is detected, so you never get silent failures from unreliable default mail delivery; a setting lets you send anyway if your host or mail plugin is reliable.<\/li>\n<li><strong>Extensible for developers<\/strong> \u2014 filter and action hooks (<code>workparcel_statuses<\/code>, <code>workparcel_shipment_created<\/code>, <code>workparcel_shipment_updated<\/code>, <code>workparcel_status_changed<\/code>, <code>workparcel_tracking_event_added<\/code>) let you connect Workparcel to other plugins and custom workflows.<\/li>\n<li><strong>Fast and self-contained<\/strong> \u2014 its own database tables, its own capabilities, no bloat, no page builder dependency, and admin assets that only load on Workparcel screens.<\/li>\n<\/ul>\n\n<h4>Core Features<\/h4>\n\n<ul>\n<li>Shipment management dashboard with live stats and recent shipments<\/li>\n<li>Automatic, prefixable tracking number generation<\/li>\n<li>Shipment statuses (extendable with the <code>workparcel_statuses<\/code> filter) with a visual progress stepper on the tracking page<\/li>\n<li>Full tracking history\/timeline per shipment<\/li>\n<li>Public tracking page via the <code>[workparcel_tracking]<\/code> shortcode \u2014 plain, full-width, and theme-agnostic so it matches any WordPress theme instead of fighting it<\/li>\n<li>Search and status filtering in the admin shipment list<\/li>\n<li>Company branding: logo, name, address, phone, email, and a custom accent color<\/li>\n<li>WooCommerce order tracking integration (HPOS compatible)<\/li>\n<li>HTML email notifications for shipment creation and status updates (sender, receiver, admin)<\/li>\n<li>Role-based capabilities for viewing, creating, editing, and deleting shipments<\/li>\n<li>Translation-ready strings<\/li>\n<li>Developer hooks and filters for third-party integrations<\/li>\n<li>Printable\/PDF-ready shipment invoice with a real, scannable Code 128 barcode, shipper\/receiver details, package info, and tracking history<\/li>\n<li>Optional shipment photo and Proof of Delivery (signature + photo) uploads, shown on the invoice and in emails when set<\/li>\n<li>Optional, shortcode-based Scan page: create shipments, update status, or assign a driver\/customer by scanning with any USB\/Bluetooth barcode scanner \u2014 no wp-admin login required<\/li>\n<li>Customers registry: register drivers and receivers, each with an auto-generated Scan ID<\/li>\n<li>REST API (toggleable) for shipments, customers, and a public read-only tracking lookup<\/li>\n<\/ul>\n\n<h4>Who is Workparcel for?<\/h4>\n\n<ul>\n<li>Courier and delivery businesses that want their own branded tracking page instead of a third-party tracking widget<\/li>\n<li>WooCommerce stores that want order tracking without a heavyweight shipping suite<\/li>\n<li>Freight, cargo, and logistics companies that need an internal shipment dashboard<\/li>\n<li>Agencies building a shipping\/tracking site for a client<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>In your WordPress admin, go to <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong> and upload the Workparcel <code>.zip<\/code> file (or upload the <code>workparcel<\/code> folder to <code>\/wp-content\/plugins\/<\/code> via FTP).<\/li>\n<li>Activate Workparcel from the Plugins screen.<\/li>\n<li>Open <strong>Workparcel<\/strong> in the WordPress admin menu to see your dashboard.<\/li>\n<li>Go to <strong>Workparcel \u2192 Settings<\/strong> and fill in your company name, logo, and accent color.<\/li>\n<li>Create a page, add the <code>[workparcel_tracking]<\/code> shortcode to it, then set that page under <strong>Workparcel \u2192 Settings \u2192 General \u2192 Tracking page<\/strong>.<\/li>\n<li>Create your first shipment under <strong>Workparcel \u2192 Add Shipment<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20customers%20track%20a%20shipment%3F\"><h3>How do customers track a shipment?<\/h3><\/dt>\n<dd><p>Create a page containing the <code>[workparcel_tracking]<\/code> shortcode and set it as your Tracking Page in Settings. Give the customer their tracking number \u2014 they enter it on that page to see live status and history.<\/p><\/dd>\n<dt id=\"does%20workparcel%20require%20an%20external%20tracking%20service%20or%20subscription%3F\"><h3>Does Workparcel require an external tracking service or subscription?<\/h3><\/dt>\n<dd><p>No. Everything \u2014 shipments, statuses, and tracking history \u2014 is stored in your own WordPress database. There's no external API and no recurring cost.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20woocommerce%3F\"><h3>Does this work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Workparcel is High-Performance Order Storage (HPOS) compatible. Open any WooCommerce order and use the \"Workparcel Tracking\" box to link it to a shipment by tracking number \u2014 the shipment's status then appears automatically on the customer's order view and order emails.<\/p><\/dd>\n<dt id=\"will%20workparcel%20send%20emails%20automatically%3F\"><h3>Will Workparcel send emails automatically?<\/h3><\/dt>\n<dd><p>Yes, if you want it to. Under Settings \u2192 Notifications you can choose to email the sender, the receiver, and\/or the admin whenever a shipment is created or its status changes. To avoid emails silently failing, Workparcel only sends them when it detects a working SMTP sender (a plugin like WP Mail SMTP, FluentSMTP, Easy WP SMTP, or Post SMTP, or a defined SMTP_HOST). If no SMTP sender is detected, notifications are skipped rather than sent through an unreliable default mail transport \u2014 unless you tick \"Send notifications anyway\" under Settings \u2192 Notifications (for example when you use an API-based mailer that Workparcel cannot detect).<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20colors%20to%20match%20my%20brand%3F\"><h3>Can I change the colors to match my brand?<\/h3><\/dt>\n<dd><p>Yes. Settings \u2192 Appearance includes a color picker that sets the accent color used across the admin dashboard, the public tracking page, and email notifications.<\/p><\/dd>\n<dt id=\"can%20i%20delete%20all%20shipment%20data%20when%20uninstalling%3F\"><h3>Can I delete all shipment data when uninstalling?<\/h3><\/dt>\n<dd><p>Yes. Enable \"Delete data on uninstall\" under Settings \u2192 Advanced before you uninstall the plugin.<\/p><\/dd>\n<dt id=\"is%20workparcel%20translation-ready%3F\"><h3>Is Workparcel translation-ready?<\/h3><\/dt>\n<dd><p>Yes, all strings are wrapped for translation using the <code>workparcel<\/code> text domain.<\/p><\/dd>\n<dt id=\"can%20i%20print%20or%20download%20a%20shipment%20invoice%3F\"><h3>Can I print or download a shipment invoice?<\/h3><\/dt>\n<dd><p>Yes. Open any shipment and click \"View Invoice\" for a clean, printable invoice with the tracking number, shipper\/receiver details, package info, and tracking history. Use your browser's Print \u2192 Save as PDF to download it.<\/p><\/dd>\n<dt id=\"can%20i%20attach%20a%20photo%20or%20a%20delivery%20signature%20to%20a%20shipment%3F\"><h3>Can I attach a photo or a delivery signature to a shipment?<\/h3><\/dt>\n<dd><p>Yes, both are optional. On the Add\/Edit Shipment screen you can attach a shipment\/package photo and, once delivered, a Proof of Delivery signature and photo \u2014 all pulled from your WordPress Media Library. When set, they appear on the invoice and in the shipment emails.<\/p><\/dd>\n<dt id=\"does%20workparcel%20support%20barcode%20scanners%3F\"><h3>Does Workparcel support barcode scanners?<\/h3><\/dt>\n<dd><p>Yes. Under Settings \u2192 Scan &amp; API, enable the Scan page and place the <code>[workparcel_scan]<\/code> shortcode on any WordPress page \u2014 no wp-admin login needed. A logged-in staff member with shipment permissions can use it directly; anyone else (a driver or customer) signs in with their own Scan ID first. Connect any USB or Bluetooth barcode scanner (they work like a keyboard) and scan a label to instantly create a shipment, update its status, or assign it to a driver or customer.<\/p><\/dd>\n<dt id=\"what%20is%20a%20scan%20id%3F\"><h3>What is a Scan ID?<\/h3><\/dt>\n<dd><p>An automatically generated, 11-character ID given to each driver or customer you register under Workparcel \u2192 Customers. It's how they sign in to the public Scan page without needing a WordPress account, and it's also how you assign a shipment to them \u2014 scan the shipment, then scan their Scan ID.<\/p><\/dd>\n<dt id=\"does%20workparcel%20have%20a%20rest%20api%3F\"><h3>Does Workparcel have a REST API?<\/h3><\/dt>\n<dd><p>Yes, under Settings \u2192 Scan &amp; API. It's on by default and covers shipments (list, create, update, delete, status changes), customers, and a public read-only tracking lookup. Authenticated endpoints require a WordPress user with the matching Workparcel capability \u2014 use an Application Password from your user profile for external access.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fixed: updating a shipment through the REST API (for example a PATCH with only a status) no longer wipes the other fields, resets the status to Pending or generates a new tracking number. Missing fields now keep their stored value.<\/li>\n<li>Fixed: tracking-event times were shifted by the site's UTC offset on the public tracking page, admin timeline, invoice and emails. Dates now use the site timezone and date format everywhere (including estimated delivery and created dates).<\/li>\n<li>Fixed: a PHP notice on every unfiltered Shipments list load.<\/li>\n<li>Fixed: saving a shipment could silently un-assign it when the assignee was inactive or beyond the first 100 customers, and erased free-text \"Assigned To\" names from before 1.1.0.<\/li>\n<li>Fixed: deleting a customer now un-assigns their shipments; customers need a name; duplicate tracking numbers show a clear message; tracking numbers are stored trimmed and uppercase.<\/li>\n<li>Privacy: scan and assignment notes no longer include the driver\/customer name on the public tracking page or the public REST lookup. Who made an update is kept privately (new <code>actor<\/code> field, shown to staff only). Existing older notes are not rewritten.<\/li>\n<li>Scan page: failed requests now show an error instead of nothing; the nonce is refreshed automatically so page-caching plugins no longer break it; all server text is escaped before display; repeated unrecognized Scan IDs are temporarily blocked; new <code>workparcel_scan_actor_can<\/code> filter to restrict what drivers\/customers may do.<\/li>\n<li>The invoice now has a real, scannable Code 128 barcode and prints correctly (table header and barcode were invisible with default print settings).<\/li>\n<li>Added Settings \u2192 Tracking: Default status (was stored but never used) and Currency (shown next to fees on invoices and emails).<\/li>\n<li>Added Settings \u2192 Notifications: \"Send notifications anyway\" plus a detection status line.<\/li>\n<li>Emails and buttons pick black or white text automatically so light accent colours stay readable.<\/li>\n<li>WooCommerce: plain-text order emails no longer receive HTML, and a deleted tracking page no longer produces a link to the current page.<\/li>\n<li>Admin UI: dashboard cards link to the filtered list and include Out for Delivery and Failed Delivery; Invoice button in the Shipments list; the Workparcel menu stays open on the Invoice and Add\/Edit Customer screens; Settings tabs wrap on small screens and remember the open tab after saving; corrected the misleading Status help text; RTL-friendly spacing.<\/li>\n<li>Public tracking page: vertical progress stepper on phones (no stray connector lines), better contrast for upcoming steps.<\/li>\n<li>The database upgrade now runs on the first request after an update, not only in wp-admin. Removed unused admin scan files.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Moved the barcode Scan tool out of wp-admin entirely: it's now the <code>[workparcel_scan]<\/code> shortcode, off by default (enable it under Settings \u2192 Scan &amp; API), so it can be placed on any WordPress page and used without a wp-admin login.<\/li>\n<li>Added Workparcel \u2192 Customers: a registry of drivers and receivers. Each gets an automatically generated, unique 11-character Scan ID (unambiguous character set \u2014 no 0\/O or 1\/I\/L mix-ups).<\/li>\n<li>The Scan page is protected: a logged-in staff member with shipment permissions can use it directly; anyone else must sign in with a registered, active Scan ID first. Every scan action is re-verified server-side \u2014 nothing is trusted from the page alone.<\/li>\n<li>Assigning a shipment to a driver\/customer is now done through the Customers registry instead of free text \u2014 pick them from a dropdown on Add\/Edit Shipment, or scan their Scan ID directly on the Scan page.<\/li>\n<li>Added a REST API under <code>workparcel\/v1<\/code> (toggleable in Settings \u2192 Scan &amp; API, on by default): shipments (list\/get\/create\/update\/delete\/status), customers, and a public read-only tracking lookup. Authenticated endpoints use standard WordPress capability checks \u2014 pair with an Application Password for external access.<\/li>\n<li>Added a <code>workparcel_customer_created<\/code> action hook.<\/li>\n<li>Database schema updated (new <code>customer_id<\/code> column on shipments, new customers table \u2014 no data loss), applied automatically via the existing safe upgrade routine.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Added a printable shipment invoice (\"View Invoice\" on any shipment): tracking number with a barcode-style header, shipper\/receiver details, package info, container\/driver info, Proof of Delivery, and full shipment history \u2014 styled to be cleaner and more modern than typical cargo-invoice templates, and works with your browser's Print \u2192 Save as PDF.<\/li>\n<li>Redesigned the shipment-created and status-update emails to match the new invoice look: barcode header, shipper\/receiver blocks, container\/driver info, Proof of Delivery images, and recent activity \u2014 still HTML-table based so it renders correctly across email clients.<\/li>\n<li>Added optional shipment photo and Proof of Delivery (signature + photo) fields on Add\/Edit Shipment, using the WordPress Media Library. All optional \u2014 nothing is required to keep using the plugin as before.<\/li>\n<li>Added Container No. and Assigned To (driver\/customer) fields to shipments.<\/li>\n<li>Added Workparcel \u2192 Scan: a barcode-scanner-friendly tool with three modes \u2014 Create Shipment (scan a new label to create it instantly), Update Status (scan, then confirm a new status), and Assign Driver\/Customer (scan, then assign) \u2014 works with any USB\/Bluetooth barcode scanner, which behaves like a keyboard.<\/li>\n<li>Added a <code>workparcel_shipment_assigned<\/code> action hook, fired when a shipment is assigned to a driver\/customer.<\/li>\n<li>Refactored status-changing logic into a shared <code>Shipment::update_status()<\/code> method used by both the manual \"Add Tracking Event\" form and the new Scan tool, so behavior (including notification emails) stays consistent everywhere a status change happens.<\/li>\n<li>Generalized the company-logo image picker into a reusable component now also used for the new shipment photo and signature fields.<\/li>\n<li>Database schema updated (new columns only \u2014 no data loss) with a safe upgrade routine that runs automatically on your next admin page load after updating.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>SEO and WordPress.org directory overhaul: rewritten description, features, and FAQ; added a Screenshots section with real interface previews; refreshed plugin icon and banner assets.<\/li>\n<li>Added a Company Profile section in Settings (logo, email, phone, address, website) used across the admin dashboard, the public tracking page, and email notifications.<\/li>\n<li>Added an Appearance tab in Settings with a color picker \u2014 pick your own accent color and it's applied consistently across the admin UI, the public tracking page, and shipment emails.<\/li>\n<li>Added HTML email notifications for shipment creation and status changes, sent to the sender, the receiver, and\/or the admin (each independently toggleable in Settings \u2192 Notifications), using a branded \"invoice style\" template with shipment, sender, recipient, and fee details.<\/li>\n<li>Emails are only sent when a working SMTP sender is detected (a known SMTP plugin, a defined SMTP_HOST, or a configured mail transport) \u2014 otherwise notifications are silently skipped instead of relying on unreliable default mail delivery.<\/li>\n<li>Company logo can now be selected from the WordPress Media Library and appears in the admin header, the public tracking page, and email notifications.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Public tracking page: removed the boxed\/card container styling. The search form and results now render as plain, full-width content with a simple divider line, so it blends into any WordPress theme instead of fighting its design.<\/li>\n<li>Public tracking page now fills 100% of its containing column instead of capping its own width, so it always reads as \"full length\" regardless of theme.<\/li>\n<li>Admin: added a consistent, explicit style ruleset for all Workparcel form fields (text, email, number, date, datetime-local, textarea, select) \u2014 uniform padding, borders, border-radius, and focus states across every screen.<\/li>\n<li>Fixed several admin inputs that were missing an explicit type=\"text\" attribute, which had been silently skipping some of the form-field styling.<\/li>\n<li>Added WooCommerce compatibility: declares High-Performance Order Storage (HPOS) compatibility, adds a \"Workparcel Tracking\" meta box on the WooCommerce order edit screen to link an order to a shipment by tracking number, and automatically displays tracking status on the customer-facing order view and order emails when linked.<\/li>\n<li>Added developer hooks for third-party\/plugin integrations: <code>workparcel_statuses<\/code> filter, and <code>workparcel_shipment_created<\/code>, <code>workparcel_shipment_updated<\/code>, <code>workparcel_status_changed<\/code>, and <code>workparcel_tracking_event_added<\/code> actions.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fixed the public tracking page \"squeezing\"\/zoom issue on mobile: the tracking number input had no explicit font size, which triggers an automatic page zoom on focus in mobile Safari\/Chrome when a field's text is under 16px.<\/li>\n<li>Fixed the public tracking page layout to be fully fluid and defensively boxed (box-sizing, explicit widths, wrapping form row) so it can no longer be squeezed or overflowed by a theme's surrounding layout.<\/li>\n<li>Added a visual shipment progress stepper to the public tracking result (Pending \u2192 Processing \u2192 Picked Up \u2192 In Transit \u2192 At Facility \u2192 Out for Delivery \u2192 Delivered), with a distinct alert state for Failed Delivery\/Cancelled shipments.<\/li>\n<li>Added a \"Copy\" button next to the tracking number for one-tap copying.<\/li>\n<li>Added Parcel Type, Weight, and Quantity to the public tracking result (previously only shown in admin).<\/li>\n<li>Added your Company Name as a small branded label above the tracking form (from Settings \u2192 General).<\/li>\n<li>Color-coded public status badges to match the admin Shipments list.<\/li>\n<li>Public tracking page now uses a responsive auto-fit details grid instead of a fixed breakpoint, so it reflows cleanly at any screen width.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Fixed a critical fatal error on the Dashboard, Shipments, Add\/Edit Shipment, and Settings screens caused by an unqualified class reference in the admin templates (PHP namespace resolution bug introduced in the 1.0.2 UI update).<\/li>\n<li>Fixed the admin menu icon: the crash on Dashboard made the menu item appear broken\/unresponsive; this is resolved now that the page loads correctly.<\/li>\n<li>Fixed the Settings page branded header rendering outside the page container, which was breaking the layout of the settings form.<\/li>\n<li>Rebuilt the Settings tabs using a pure CSS technique so they work reliably even if a browser fails to load\/cache the admin JavaScript.<\/li>\n<li>General verification pass on Add\/Edit Shipment: confirmed the Add Shipment button, all form fields, and all status dropdowns render and submit correctly.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Redesigned Workparcel admin interface.<\/li>\n<li>Added Workparcel admin branding.<\/li>\n<li>Added custom Workparcel admin menu icon.<\/li>\n<li>Improved dashboard interface.<\/li>\n<li>Improved shipment management interface.<\/li>\n<li>Improved shipment forms.<\/li>\n<li>Improved tracking event presentation.<\/li>\n<li>Improved responsive admin experience.<\/li>\n<li>Added\/updated WordPress.org branding assets.<\/li>\n<li>Improved accessibility and general UI consistency.<\/li>\n<li>Fixed invalid nested-form markup on the Add\/Edit Shipment screen.<\/li>\n<li>Updated internal plugin version.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial MVP release.<\/li>\n<\/ul>","raw_excerpt":"Track parcels and shipments on WordPress with a branded tracking page, a clean shipment dashboard, and WooCommerce order integration.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/357363","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=357363"}],"author":[{"embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/favouradjenuvurhe"}],"wp:attachment":[{"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=357363"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=357363"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=357363"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=357363"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=357363"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=357363"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}