{"id":293510,"date":"2026-04-22T16:06:09","date_gmt":"2026-04-22T16:06:09","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/theforge-easypost-shipping-bulk-label-printing-for-woocommerce\/"},"modified":"2026-05-01T10:52:01","modified_gmt":"2026-05-01T10:52:01","slug":"theforge-shipping-bulk-label-printing-for-easypost","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/theforge-shipping-bulk-label-printing-for-easypost\/","author":23315595,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"5.5.0","stable_tag":"5.5.0","tested":"6.9.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Automated Shipping for EasyPost WooCommerce \u2013 Bulk Labels, Easy Returns, Zero Manual Work","header_author":"ThePluginForge","header_description":"The complete EasyPost shipping solution \u2014 live rates, smart packing, label generation, address validation, bulk printing, insurance, return labels, pickup scheduling, tracking, and automation.","assets_banners_color":"","last_updated":"2026-05-01 10:52:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/thepluginforge.com\/plugins\/easypost-shipping","header_author_uri":"https:\/\/thepluginforge.com","rating":5,"author_block_rating":0,"active_installs":0,"downloads":372,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"5.1.0":{"tag":"5.1.0","author":"thepluginforge","date":"2026-04-22 16:53:31"},"5.2.0":{"tag":"5.2.0","author":"thepluginforge","date":"2026-04-25 18:34:54"},"5.3.0":{"tag":"5.3.0","author":"thepluginforge","date":"2026-04-26 03:53:43"},"5.4.0":{"tag":"5.4.0","author":"thepluginforge","date":"2026-04-30 11:09:36"},"5.5.0":{"tag":"5.5.0","author":"thepluginforge","date":"2026-05-01 10:52:01"}},"upgrade_notice":{"5.4.0":"<p>Recommended update. Easy Returns now shows live return rates before generating. Batch Print results include direct label links. Label Management action buttons aligned. Performance improvements for large stores on Analytics and Label Management pages.<\/p>","5.3.0":"<p>Recommended update. Easy Returns now lets you pick return rates before generating. Batch Print results show label links immediately. Label Management action buttons aligned. Performance improvements on Analytics and Label Management pages for large stores.<\/p>","5.2.0":"<p>Recommended update. Fully redesigned admin UI \u2014 dashboard, analytics, and bulk label pages rebuilt with new charts and consistent branding.<\/p>","5.1.0":"<p>Recommended update. Address validation improvements, batch pickup scheduling, and order panel UI enhancements.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3519435,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3519435,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3528932,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=wc-settings&tab=shipping\",\"preferredVersions\":{\"php\":\"8.2\",\"wp\":\"latest\"},\"steps\":[{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"},{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"woocommerce\"}},{\"step\":\"installPlugin\",\"options\":{\"activate\":true},\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"theforge-shipping-bulk-label-printing-for-easypost\"}}]}"}},"all_blocks":[],"tagged_versions":["5.1.0","5.2.0","5.3.0","5.4.0","5.5.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3519435,"resolution":"1","location":"assets","locale":"","width":3594,"height":2030},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3519435,"resolution":"2","location":"assets","locale":"","width":3600,"height":2032},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3519435,"resolution":"3","location":"assets","locale":"","width":3598,"height":2024},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3519435,"resolution":"4","location":"assets","locale":"","width":3600,"height":2010},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3519435,"resolution":"5","location":"assets","locale":"","width":3598,"height":2032},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3519435,"resolution":"6","location":"assets","locale":"","width":3598,"height":2008}},"screenshots":{"1":"<strong>Dashboard<\/strong> \u2014 At-a-glance KPIs, carrier breakdown, recent labels, and quick access to every feature","2":"<strong>Label Management<\/strong> \u2014 Every label searchable, downloadable, and reprintable from one screen with Box 1\/2\/3 per order","3":"<strong>Ship Insights<\/strong> \u2014 Carrier spend trends, label volume chart, carrier mix donut, and full shipment history","4":"<strong>AutoShip<\/strong> \u2014 Rules-based automation: select trigger status, carrier, service, and auto-complete on delivery","5":"<strong>Smart Packing Settings<\/strong> \u2014 Choose Weight-Based, Volume-Based, or 3D Bin Packing with live box preview","6":"<strong>Shipping Boxes<\/strong> \u2014 Visual box manager showing dimensions, volume, and max weight per configured box"}},"plugin_section":[262246],"plugin_tags":[261537,261538,26123,238148,5023],"plugin_category":[45],"plugin_contributors":[251839],"plugin_business_model":[],"class_list":["post-293510","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-bulk-labels","plugin_tags-easy-returns","plugin_tags-easypost","plugin_tags-shipping-automation","plugin_tags-woocommerce-shipping","plugin_category-ecommerce","plugin_contributors-thepluginforge","plugin_committers-thepluginforge"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/theforge-shipping-bulk-label-printing-for-easypost\/assets\/icon-128x128.png?rev=3519435","icon_2x":"https:\/\/ps.w.org\/theforge-shipping-bulk-label-printing-for-easypost\/assets\/icon-256x256.png?rev=3519435","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/theforge-shipping-bulk-label-printing-for-easypost\/assets\/screenshot-1.png?rev=3519435","caption":"<strong>Dashboard<\/strong> \u2014 At-a-glance KPIs, carrier breakdown, recent labels, and quick access to every feature"},{"src":"https:\/\/ps.w.org\/theforge-shipping-bulk-label-printing-for-easypost\/assets\/screenshot-2.png?rev=3519435","caption":"<strong>Label Management<\/strong> \u2014 Every label searchable, downloadable, and reprintable from one screen with Box 1\/2\/3 per order"},{"src":"https:\/\/ps.w.org\/theforge-shipping-bulk-label-printing-for-easypost\/assets\/screenshot-3.png?rev=3519435","caption":"<strong>Ship Insights<\/strong> \u2014 Carrier spend trends, label volume chart, carrier mix donut, and full shipment history"},{"src":"https:\/\/ps.w.org\/theforge-shipping-bulk-label-printing-for-easypost\/assets\/screenshot-4.png?rev=3519435","caption":"<strong>AutoShip<\/strong> \u2014 Rules-based automation: select trigger status, carrier, service, and auto-complete on delivery"},{"src":"https:\/\/ps.w.org\/theforge-shipping-bulk-label-printing-for-easypost\/assets\/screenshot-5.png?rev=3519435","caption":"<strong>Smart Packing Settings<\/strong> \u2014 Choose Weight-Based, Volume-Based, or 3D Bin Packing with live box preview"},{"src":"https:\/\/ps.w.org\/theforge-shipping-bulk-label-printing-for-easypost\/assets\/screenshot-6.png?rev=3519435","caption":"<strong>Shipping Boxes<\/strong> \u2014 Visual box manager showing dimensions, volume, and max weight per configured box"}],"raw_content":"<!--section=description-->\n<p><strong>Stop printing labels one by one. Start shipping on autopilot.<\/strong><\/p>\n\n<p>Most WooCommerce shipping plugins stop at checkout rates. Your fulfillment team is still doing everything manually \u2014 opening orders, choosing carriers, printing labels one at a time, and chasing tracking numbers. That's 2\u20134 hours of daily grunt work that doesn't need to exist.<\/p>\n\n<p>This plugin automates every step after the order is placed. Carriers are selected by rule. Labels are generated in batch. Returns are created in one click. Tracking is sent automatically. Analytics show exactly what you're spending and where.<\/p>\n\n<p>Built for WooCommerce stores shipping 20\u20131,000+ orders daily. Powered by EasyPost.<\/p>\n\n\n\n<h4>Why Stores Switch to This Plugin<\/h4>\n\n<p><strong>Before:<\/strong> Open order \u2192 pick carrier \u2192 buy label \u2192 download \u2192 print \u2192 repeat \u00d7 50 orders = 2 hours lost.<\/p>\n\n<p><strong>After:<\/strong> Click \"Generate Labels\" \u2192 50 labels print \u2192 orders update automatically = 3 minutes.<\/p>\n\n<p>That's the difference between a shipping plugin and a fulfillment automation platform.<\/p>\n\n\n\n<h4>Core Modules<\/h4>\n\n<p><strong>AutoShip \u2014 Rules-Based Fulfillment Automation<\/strong>\nSet rules once. Ship forever without touching an order. AutoShip selects the right carrier, service, and box size automatically based on product, category, weight, or volume. Trigger label generation on any order status change. Orders auto-complete on delivery via EasyPost webhooks. Zero human intervention required for your standard fulfillment flow.<\/p>\n\n<p><strong>Batch Print \u2014 Bulk Label Generation<\/strong>\nGenerate labels for 50, 100, or 500 orders in one click. Load orders by date range or paste a list of IDs. A real-time progress tracker shows each order's result \u2014 generated, skipped, or flagged. Already-labelled orders are skipped automatically. What used to take 2 hours takes under 3 minutes.<\/p>\n\n<p><strong>Easy Returns \u2014 One-Click Return Labels<\/strong>\nGenerate a prepaid return label from any shipped order without re-entering addresses. Fetch live return rates from all available carriers and pick the right service before generating. Addresses are swapped automatically \u2014 customer becomes the sender, your store becomes the recipient. Email the return label to the customer in the same action.<\/p>\n\n<p><strong>Smart Packing Engine<\/strong>\nAutomatically selects the best box for every order using 3D bin packing, volume-based, or weight-based methods. Large orders split across multiple packages automatically \u2014 each gets its own label and tracking number. Eliminates dimensional weight penalties and overpacking fees without any manual box selection.<\/p>\n\n<p><strong>Live Rates at Checkout<\/strong>\nReal carrier rates from USPS, UPS, FedEx, DHL, OnTrac, and 100+ carriers \u2014 fetched live at checkout via EasyPost. Add markup or discounts per service. Mix with flat rates or use live rates on their own. Show delivery estimates. Limit rate count per zone.<\/p>\n\n<p><strong>Address Validation<\/strong>\nReal-time address verification at checkout via EasyPost. Detects and corrects ZIP\/state mismatches before orders ship. Optional strict mode blocks checkout on confirmed undeliverable addresses. Runs asynchronously \u2014 zero impact on checkout speed. Reduces delivery failures, wasted carrier fees, and support tickets by up to 85%.<\/p>\n\n<p><strong>Ship Insights \u2014 Shipping Analytics<\/strong>\nFull shipment history with carrier, service, cost, and tracking per label. Filter by date range or carrier. Trend charts show label volume and spend over time. Carrier mix breakdown. Cost-per-order averages. Compare current period vs. previous. CSV export for accounting or reporting. Paginated for stores with thousands of shipments.<\/p>\n\n<p><strong>Shipment Insurance<\/strong>\nAdd carrier insurance at label purchase time. Insured value is set automatically as the full order total or a configured percentage. Optionally let customers opt in at checkout.<\/p>\n\n<p><strong>Carrier Pickup Scheduling<\/strong>\nSchedule pickups for USPS, DHL, OnTrac, and other supported carriers directly from WordPress. Batch-schedule for multiple orders. Cancel or reschedule without leaving the admin.<\/p>\n\n<p><strong>Tracking &amp; Notifications<\/strong>\nTracking numbers are injected into order completion emails automatically. Live status refresh from the order page. EasyPost webhooks auto-complete orders on delivery. Customers get real tracking links \u2014 not generic carrier search pages.<\/p>\n\n<p><strong>Label Management<\/strong>\nEvery label ever generated is stored and searchable in one place. Download or reprint any label instantly. View return labels alongside outbound labels. Filter by date, carrier, or order. All label URLs stored in the database \u2014 no slow meta queries.<\/p>\n\n\n\n<h4>Key Outcomes<\/h4>\n\n<p>\u2713 <strong>Cut fulfillment time by 60\u201380%<\/strong> \u2014 Batch Print turns a 2-hour manual task into 3 minutes<\/p>\n\n<p>\u2713 <strong>Scale without hiring<\/strong> \u2014 AutoShip handles carrier selection, packing, and label generation for every order automatically<\/p>\n\n<p>\u2713 <strong>Reduce shipping costs by $2\u20135\/order<\/strong> \u2014 Smart Packing eliminates dimensional weight overages<\/p>\n\n<p>\u2713 <strong>Slash delivery failures by ~85%<\/strong> \u2014 Address Validation catches bad addresses before checkout completes<\/p>\n\n<p>\u2713 <strong>Eliminate return friction<\/strong> \u2014 Easy Returns generates prepaid labels in one click, no address re-entry<\/p>\n\n<p>\u2713 <strong>Know your numbers<\/strong> \u2014 Ship Insights shows carrier spend, cost trends, and volume at a glance<\/p>\n\n\n\n<h4>Getting Started<\/h4>\n\n<ol>\n<li>Create a free account at <a href=\"https:\/\/www.easypost.com\/\">easypost.com<\/a><\/li>\n<li>Copy your API key from the EasyPost dashboard<\/li>\n<li>Install and activate this plugin<\/li>\n<li>Go to <strong>WooCommerce \u2192 Settings \u2192 Shipping \u2192 EasyPost Shipping<\/strong> and enter your API key<\/li>\n<li>Set your origin address and add your box sizes under <strong>Packing<\/strong><\/li>\n<li>Live rates appear at checkout automatically \u2014 set up AutoShip rules when ready<\/li>\n<\/ol>\n\n<p><a href=\"https:\/\/thepluginforge.com\/easypost-shipping-for-woocommerce\/\">Full documentation \u2192<\/a><\/p>\n\n\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to EasyPost to provide its core functionality.<\/p>\n\n<h4>EasyPost Shipping API<\/h4>\n\n<p>EasyPost is a shipping logistics API that provides real-time carrier rates, address validation, label generation, tracking, insurance, and pickup scheduling across 100+ carriers.<\/p>\n\n<p><strong>Data sent to EasyPost:<\/strong><\/p>\n\n<ul>\n<li><strong>Rates<\/strong> \u2014 package weight, dimensions, origin address, and destination address (sent on checkout load or manual rate fetch)<\/li>\n<li><strong>Address validation<\/strong> \u2014 customer shipping address (sent in real time at checkout)<\/li>\n<li><strong>Label generation<\/strong> \u2014 package details, destination address, and carrier\/service selection (sent when a label is purchased)<\/li>\n<li><strong>Tracking<\/strong> \u2014 shipment tracking numbers (sent to retrieve current delivery status)<\/li>\n<li><strong>Pickups<\/strong> \u2014 pickup location and timing details (sent when scheduling a carrier pickup)<\/li>\n<\/ul>\n\n<p>Your EasyPost API key is stored in your WordPress options table and transmitted only over HTTPS to api.easypost.com.<\/p>\n\n<ul>\n<li>EasyPost Website: https:\/\/www.easypost.com\/<\/li>\n<li>EasyPost Terms of Service: https:\/\/www.easypost.com\/terms<\/li>\n<li>EasyPost Privacy Policy: https:\/\/www.easypost.com\/privacy<\/li>\n<\/ul>\n\n<h4>ThePluginForge Deactivation Survey<\/h4>\n\n<p>When you choose to deactivate this plugin, an optional survey modal is shown. If you click <strong>Submit &amp; Deactivate<\/strong>, the following data is sent from your browser to The Plugin Forge (thepluginforge.com) solely to improve the plugin:<\/p>\n\n<ul>\n<li>Selected deactivation reason<\/li>\n<li>Optional free-text details you enter<\/li>\n<li>Plugin version number<\/li>\n<li>Your site's hostname (e.g. example.com)<\/li>\n<\/ul>\n\n<p>Clicking <strong>Skip &amp; Deactivate<\/strong> sends nothing. No data is collected automatically.<\/p>\n\n<ul>\n<li>The Plugin Forge Privacy Policy: https:\/\/thepluginforge.com\/privacy-policy\/<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install via the WordPress plugin search<\/li>\n<li>Activate the plugin from the <strong>Plugins<\/strong> screen<\/li>\n<li>Go to <strong>WooCommerce \u2192 Settings \u2192 Shipping \u2192 EasyPost Shipping<\/strong><\/li>\n<li>Enter your EasyPost API key<\/li>\n<li>Set your origin address and add your shipping boxes under <strong>Packing<\/strong><\/li>\n<li>Enable desired carrier services \u2014 live rates will appear at checkout immediately<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20get%20an%20easypost%20api%20key%3F\"><h3>Where do I get an EasyPost API key?<\/h3><\/dt>\n<dd><p>Sign up free at <a href=\"https:\/\/www.easypost.com\/\">easypost.com<\/a>. Test and production API keys are available immediately in your dashboard. Test mode lets you preview rates and generate test labels at no charge.<\/p><\/dd>\n<dt id=\"which%20carriers%20are%20supported%3F\"><h3>Which carriers are supported?<\/h3><\/dt>\n<dd><p>EasyPost connects 100+ carriers including USPS, UPS, FedEx, DHL Express, DHL eCommerce, OnTrac, LaserShip, GSO, and many more. Available carriers depend on your EasyPost account and any carrier accounts you've connected.<\/p><\/dd>\n<dt id=\"can%20i%20use%20my%20own%20negotiated%20carrier%20rates%3F\"><h3>Can I use my own negotiated carrier rates?<\/h3><\/dt>\n<dd><p>Yes. Connect your UPS, FedEx, or other carrier accounts to EasyPost and those negotiated rates are returned automatically at checkout and at label generation.<\/p><\/dd>\n<dt id=\"how%20does%20autoship%20work%3F\"><h3>How does AutoShip work?<\/h3><\/dt>\n<dd><p>You create rules based on conditions (product, category, weight, volume, order total) and assign a carrier, service, and box size to each. When an order reaches the status you configure, the matching rule fires and a label is generated \u2014 no human needed. Multiple rules are evaluated in priority order.<\/p><\/dd>\n<dt id=\"does%20it%20support%20multiple%20packages%20per%20order%3F\"><h3>Does it support multiple packages per order?<\/h3><\/dt>\n<dd><p>Yes. When an order doesn't fit in one box, the Smart Packing engine splits it automatically. Each package gets its own label, tracking number, and download link \u2014 all visible from the order page and Label Management.<\/p><\/dd>\n<dt id=\"how%20does%20batch%20print%20work%3F\"><h3>How does Batch Print work?<\/h3><\/dt>\n<dd><p>Go to <strong>Bulk Labels<\/strong>, enter order IDs or pick a date range, and click <strong>Generate Labels<\/strong>. Labels are created via EasyPost for each order in one request. Already-labelled orders are skipped. Results show generated, skipped, or failed per order with direct print links.<\/p><\/dd>\n<dt id=\"how%20do%20easy%20returns%20work%3F\"><h3>How do Easy Returns work?<\/h3><\/dt>\n<dd><p>From any shipped order, click <strong>Fetch Return Rates<\/strong> in the order panel. Live rates from all available carriers are displayed \u2014 pick the one you want and click <strong>Generate Return Label<\/strong>. The label is created with addresses automatically swapped (customer \u2192 store). You can email it to the customer in the same step.<\/p><\/dd>\n<dt id=\"what%20is%20address%20validation%20and%20does%20it%20affect%20checkout%20speed%3F\"><h3>What is Address Validation and does it affect checkout speed?<\/h3><\/dt>\n<dd><p>It verifies the customer's shipping address against EasyPost's database in real time. It runs asynchronously so it never blocks or slows checkout. Customers see a correction suggestion if an issue is detected before they place the order.<\/p><\/dd>\n<dt id=\"how%20does%20shipment%20insurance%20work%3F\"><h3>How does shipment insurance work?<\/h3><\/dt>\n<dd><p>Insurance is added through EasyPost at label purchase time. The insured value is the WooCommerce order subtotal or a configured percentage \u2014 no separate insurance account or third-party service needed.<\/p><\/dd>\n<dt id=\"what%20does%20ship%20insights%20show%3F\"><h3>What does Ship Insights show?<\/h3><\/dt>\n<dd><p>Full shipment history with carrier, service, cost, and tracking per label. Date-range filtering and carrier filtering. Trend charts for label volume and spend. Carrier mix donut chart. Period-over-period comparison badges. CSV export for accounting or reporting.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20woocommerce%20hpos%3F\"><h3>Is it compatible with WooCommerce HPOS?<\/h3><\/dt>\n<dd><p>Yes. Fully compatible with WooCommerce High-Performance Order Storage (custom order tables).<\/p><\/dd>\n<dt id=\"can%20i%20test%20without%20real%20charges%3F\"><h3>Can I test without real charges?<\/h3><\/dt>\n<dd><p>Yes. Enable Test Mode in settings and use your EasyPost test API key. No carrier charges are incurred in test mode. Use <strong>Force live rates in Test Mode<\/strong> if you want accurate rate previews without generating real labels.<\/p><\/dd>\n<dt id=\"where%20are%20customer%20tracking%20links%20sent%3F\"><h3>Where are customer tracking links sent?<\/h3><\/dt>\n<dd><p>The plugin uses the EasyPost public tracker URL (track.easypost.com) for tracking links when available \u2014 giving customers a real-time tracking page without exposing your EasyPost merchant dashboard. No data is sent to carrier websites by the plugin \u2014 the customer's browser handles that when they click the link.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20support%3F\"><h3>Where can I get support?<\/h3><\/dt>\n<dd><p>Visit <a href=\"https:\/\/thepluginforge.com\/\">thepluginforge.com<\/a> for documentation and support. Email: support@thepluginforge.com<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>5.5.0<\/h4>\n\n<ul>\n<li><strong>Shield Insurance<\/strong> \u2014 Customer insurance opt-in is now checked by default at checkout; insurance field and fee only appear when an EasyPost shipping method is selected (flat rate, free shipping, etc. are excluded)<\/li>\n<li><strong>Insurance rate corrected<\/strong> \u2014 Fee formula updated to 1.0% of declared value (minimum $1.00) per EasyPost documentation; insurance amount passed to EasyPost API as a string as required<\/li>\n<li><strong>Non-EasyPost label skip<\/strong> \u2014 Auto label generation and bulk label generation now silently skip orders that used a non-EasyPost shipping method; no error note is added to the order<\/li>\n<li><strong>UI rebrand<\/strong> \u2014 All admin pages rebranded from WooCommerce purple to a professional blue palette; hero gradients, KPI accents, buttons, and interactive states updated across Dashboard, Labels, Settings, Analytics, Bulk Labels, Pickups, Rules, Automation, and Setup Wizard<\/li>\n<li><strong>Settings highlights<\/strong> \u2014 Shield Insurance and Checkout Address Validation cards now display with distinct colored headers for quick visual identification<\/li>\n<li><strong>Handling Fee removed<\/strong> \u2014 Handling Fee option removed from Settings<\/li>\n<li><strong>Manage link fixed<\/strong> \u2014 \"Manage \u2197\" button in Label Management now links to the EasyPost dashboard; previous per-shipment deep link returned 404<\/li>\n<\/ul>\n\n<h4>5.4.0<\/h4>\n\n<ul>\n<li><strong>Plugin renamed<\/strong> \u2014 Now \"Automated Shipping for EasyPost WooCommerce \u2013 Bulk Labels, Easy Returns, Zero Manual Work\"<\/li>\n<li><strong>Easy Returns upgrade<\/strong> \u2014 Fetch live return rates from all carriers before generating; pick the right service instead of defaulting to cheapest<\/li>\n<li><strong>Batch Print fix<\/strong> \u2014 Results table now shows label print links immediately after generation; duplicate results row eliminated<\/li>\n<li><strong>Label Management alignment<\/strong> \u2014 Action buttons (Download, Print, Return, Manage) stay on one row per label; Box 1 now labelled consistently with Box 2, 3 for multi-package orders<\/li>\n<li><strong>Performance<\/strong> \u2014 Analytics and Label Management pages batch-load orders in a single query; eliminates N+1 slowness on large datasets<\/li>\n<li><strong>Tracking URLs<\/strong> \u2014 EasyPost public tracker URL (track.easypost.com) stored per label and used everywhere: emails, order panel, analytics, label management<\/li>\n<li><strong>Analytics<\/strong> \u2014 Tracking URL and label URL now read from analytics DB table directly; zero per-row order meta queries<\/li>\n<li><strong>Insurance<\/strong> \u2014 Block Checkout (WC 8.9+ Blocks) now supported for customer insurance opt-in alongside classic shortcode checkout<\/li>\n<li><strong>Units<\/strong> \u2014 Packing summary in order panel now uses WooCommerce store dimension\/weight units instead of hardcoded in\/oz<\/li>\n<li>New screenshots added across all major feature pages<\/li>\n<\/ul>\n\n<h4>5.3.0<\/h4>\n\n<ul>\n<li><strong>Easy Returns upgrade<\/strong> \u2014 Fetch live return rates from all carriers before generating; pick the right service instead of defaulting to cheapest<\/li>\n<li><strong>Batch Print fix<\/strong> \u2014 Results table now shows label print links immediately after generation; duplicate results row eliminated<\/li>\n<li><strong>All Labels alignment<\/strong> \u2014 Action buttons (Download, Print, Return, Manage) no longer wrap unpredictably; consistent single-row layout per label<\/li>\n<li><strong>Box labelling<\/strong> \u2014 Box 1 now labelled consistently alongside Box 2, Box 3 for multi-package orders in Label Management<\/li>\n<li><strong>Performance<\/strong> \u2014 Analytics and Label Management pages now batch-load orders in one query instead of one per row (eliminates N+1 slowness on large datasets)<\/li>\n<li><strong>Tracking URLs<\/strong> \u2014 EasyPost public tracker URL (track.easypost.com) now stored per label and used everywhere tracking links appear \u2014 emails, order panel, analytics, label management<\/li>\n<li><strong>Analytics<\/strong> \u2014 Tracking URL and label URL now read directly from the analytics DB table, eliminating all per-row order meta queries<\/li>\n<li><strong>Insurance<\/strong> \u2014 Block Checkout (WC 8.9+ Blocks) now supported for customer insurance opt-in field alongside classic shortcode checkout<\/li>\n<li><strong>Units fix<\/strong> \u2014 Packing summary in order panel now uses WooCommerce store dimension and weight units instead of hardcoded in\/oz<\/li>\n<li>Ship-From address now auto-fills from WooCommerce store address on first setup<\/li>\n<li>Added \"Load from WooCommerce\" button in Ship-From panel to instantly sync store address<\/li>\n<li>Fixed critical error when clicking \"Validate Address\" on Ship-From panel<\/li>\n<li>Shipping zone instance settings \u2014 10 config options per zone: markup, free shipping threshold, max rates shown, tax status, cart restrictions, delivery estimate toggle<\/li>\n<li>Rate caching disabled by default on new installs<\/li>\n<li>Logging defaults to Off<\/li>\n<li>Fixed WordPress admin notices appearing inside hero banners<\/li>\n<\/ul>\n\n<h4>5.2.0<\/h4>\n\n<ul>\n<li>Redesigned Dashboard \u2014 purple gradient hero, KPI cards with trend indicators, carrier breakdown, recent labels<\/li>\n<li>Redesigned Ship Insights (Analytics) \u2014 Chart.js line and donut charts, date presets, CSV export, period-over-period comparison<\/li>\n<li>Redesigned Batch Print (Bulk Label Printing) \u2014 tab input, progress steps, color-coded results, label download grid<\/li>\n<li>Deactivation feedback survey<\/li>\n<li>Dashboard widget \u2014 labels today\/this week with spend stats<\/li>\n<li>Settings page 3-step quick-start guide auto-hides once configured<\/li>\n<li>Fixed CSS scoping across all admin pages<\/li>\n<\/ul>\n\n<h4>5.1.0<\/h4>\n\n<ul>\n<li>Address validation mismatch detection \u2014 state\/ZIP auto-correction warnings at checkout<\/li>\n<li>Dedicated Pickups page for batch carrier pickup scheduling<\/li>\n<li>Redesigned order meta box with multi-box label layout<\/li>\n<li>Debug log level control from Logs &amp; Diagnostics page<\/li>\n<li>Return label fix \u2014 correct EasyPost API address swap flow<\/li>\n<\/ul>\n\n<h4>5.0.0<\/h4>\n\n<ul>\n<li>Complete plugin rewrite \u2014 PHP 8.1+, HPOS compatible<\/li>\n<li>3D bin packing algorithm (First-Fit Decreasing with rotation)<\/li>\n<li>Advanced rule engine \u2014 category, product, weight, and volume conditions<\/li>\n<li>Ship Insights shipping analytics \u2014 spend tracking and carrier breakdown<\/li>\n<li>Batch Print \u2014 bulk label generation with date-range order loading<\/li>\n<li>AutoShip \u2014 auto-label on status change, auto-complete on delivery<\/li>\n<li>Carrier pickup scheduling<\/li>\n<li>Easy Returns \u2014 return label generation<\/li>\n<li>Flat rate shipping support<\/li>\n<li>Shipment insurance<\/li>\n<\/ul>","raw_excerpt":"EasyPost shipping automation for WooCommerce. Bulk labels, easy returns, auto carrier selection \u2014 ship 100+ orders daily without manual work.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/293510","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=293510"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/thepluginforge"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=293510"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=293510"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=293510"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=293510"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=293510"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=293510"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}