{"id":312669,"date":"2026-05-17T01:16:52","date_gmt":"2026-05-17T01:16:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/rankd-free-shipping-progress-bar\/"},"modified":"2026-05-17T01:20:55","modified_gmt":"2026-05-17T01:20:55","slug":"rankd-free-shipping-progress-bar","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/rankd-free-shipping-progress-bar\/","author":23191840,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"6.9.4","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Rankd Free Shipping Progress Bar","header_author":"Rankd.site","header_description":"Displays a customizable free shipping progress message anywhere on your WooCommerce store via shortcode [rankd_free_shipping]. Configure under WooCommerce &rarr; Settings &rarr; Shipping &rarr; Free Shipping Progress.","assets_banners_color":"b6e1d1","last_updated":"2026-05-17 01:20:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/rankd.site\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":23,"num_ratings":0,"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":"coolhuntersgt","date":"2026-05-17 01:20:55"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3534148,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3534148,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3534148,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x225.png":{"filename":"banner-772x225.png","revision":3534159,"resolution":"772x225","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3534155,"resolution":"1","location":"assets","locale":"","width":1524,"height":3439},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3534148,"resolution":"2","location":"assets","locale":"","width":1557,"height":732},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3534148,"resolution":"3","location":"assets","locale":"","width":1588,"height":769}},"screenshots":{"1":"The settings page \u2014 configure threshold, messages, coupon code, role exclusions, and display placement all in one place.","2":"The \"Almost There\" notice state on the cart page \u2014 showing the amount remaining with the progress bar partially filled.","3":"The \"Qualified\" success state \u2014 shown when the customer's cart meets the threshold, with optional coupon code display."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[3047,5230,9351,80,286],"plugin_category":[43,45],"plugin_contributors":[263191],"plugin_business_model":[],"class_list":["post-312669","plugin","type-plugin","status-publish","hentry","plugin_tags-cart","plugin_tags-free-shipping","plugin_tags-progress-bar","plugin_tags-shortcode","plugin_tags-woocommerce","plugin_category-customization","plugin_category-ecommerce","plugin_contributors-coolhuntersgt","plugin_committers-coolhuntersgt"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/rankd-free-shipping-progress-bar\/assets\/icon-128x128.png?rev=3534148","icon_2x":"https:\/\/ps.w.org\/rankd-free-shipping-progress-bar\/assets\/icon-256x256.png?rev=3534148","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/rankd-free-shipping-progress-bar\/assets\/screenshot-1.png?rev=3534155","caption":"The settings page \u2014 configure threshold, messages, coupon code, role exclusions, and display placement all in one place."},{"src":"https:\/\/ps.w.org\/rankd-free-shipping-progress-bar\/assets\/screenshot-2.png?rev=3534148","caption":"The \"Almost There\" notice state on the cart page \u2014 showing the amount remaining with the progress bar partially filled."},{"src":"https:\/\/ps.w.org\/rankd-free-shipping-progress-bar\/assets\/screenshot-3.png?rev=3534148","caption":"The \"Qualified\" success state \u2014 shown when the customer's cart meets the threshold, with optional coupon code display."}],"raw_content":"<!--section=description-->\n<p>This plugin shows a free shipping progress message on your WooCommerce store. When a customer's cart is below your threshold, they see how much more they need to spend. When they hit it, the message updates to confirm they've qualified. The message refreshes as items are added or removed without a page reload.<\/p>\n\n<p>You can drop it on any page using the shortcode <code>[rankd_free_shipping]<\/code>, or turn on auto-inject to have it appear automatically at the top of your cart and checkout pages. Settings are under <strong>WooCommerce \u2192 Settings \u2192 Shipping \u2192 Free Shipping Progress<\/strong>.<\/p>\n\n<p><strong>What it does<\/strong><\/p>\n\n<ul>\n<li>Auto-injects on the cart page, checkout page, or both \u2014 no shortcode needed<\/li>\n<li>Shortcode placement works on any page, widget area, or theme template<\/li>\n<li>Updates the message and progress bar as the cart changes, including on block-based themes<\/li>\n<li>Progress bar is included by default and can be hidden with a single CSS rule<\/li>\n<li>Threshold amount is configurable<\/li>\n<li>Supports an optional coupon code \u2014 useful if your free shipping requires one<\/li>\n<li>Message text is customizable, with <code>{amount}<\/code> and <code>{coupon}<\/code> merge tags<\/li>\n<li>Role exclusions let you hide the message from specific user roles (wholesale accounts, for example)<\/li>\n<li>The settings page includes a CSS class reference so you know exactly what to target when styling<\/li>\n<\/ul>\n\n<p><strong>Wholesale stores<\/strong><\/p>\n\n<p>Most free shipping plugins have no way to hide the message from wholesale or trade customers. This one does. Check the roles you want to exclude on the settings page and those users won't see the message.<\/p>\n\n<p><strong>Before you activate<\/strong><\/p>\n\n<p>This plugin displays a message based on your WooCommerce free shipping configuration. It needs that to be set up first:<\/p>\n\n<ol>\n<li>Go to <strong>WooCommerce \u2192 Settings \u2192 Shipping \u2192 Shipping Zones<\/strong> and add or edit a zone<\/li>\n<li>Add <strong>Free Shipping<\/strong> as a shipping method in that zone<\/li>\n<li>Set <strong>\"Free Shipping Requires\"<\/strong> to match your setup (minimum order amount, coupon, or both)<\/li>\n<li>If using a coupon: go to <strong>Marketing \u2192 Coupons<\/strong>, create the coupon, and check <strong>\"Allow free shipping\"<\/strong><\/li>\n<\/ol>\n\n<p><a href=\"https:\/\/woocommerce.com\/document\/free-shipping\/\">WooCommerce Free Shipping documentation<\/a><\/p>\n\n<p><strong>Multiple shipping zones<\/strong><\/p>\n\n<p>The plugin shows one threshold to all visitors. If you have zones with different minimums (say, $50 for domestic and $75 for international), customers in the non-primary zones will see the wrong number. If that's a real concern for your store, you'll want a plugin with geo-detection built in.<\/p>\n\n<h3>Styling<\/h3>\n\n<p>All classes and their purposes are listed on the settings page. Quick reference:<\/p>\n\n\n\n\n  Class\n  Element\n\n\n\n\n  <code>.rankd-fs-wrapper<\/code>\n  Outer div (both states)\n\n\n  <code>.rankd-fs-notice<\/code>\n  Outer div \u2014 threshold not met\n\n\n  <code>.rankd-fs-success<\/code>\n  Outer div \u2014 threshold met\n\n\n  <code>.rankd-fs-message<\/code>\n  Message text span\n\n\n  <code>.rankd-fs-amount<\/code>\n  Currency amount span\n\n\n  <code>.rankd-fs-coupon-code<\/code>\n  Coupon code span\n\n\n  <code>.rankd-fs-coupon-line<\/code>\n  Coupon line beneath success msg\n\n\n  <code>.rankd-fs-bar-track<\/code>\n  Progress bar background track\n\n\n  <code>.rankd-fs-bar-fill<\/code>\n  Progress bar filled portion\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>free-shipping-progress<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong><\/li>\n<li>Activate the plugin<\/li>\n<li>Go to <strong>WooCommerce \u2192 Settings \u2192 Shipping \u2192 Free Shipping Progress<\/strong><\/li>\n<li>Set your threshold amount and customize your messages<\/li>\n<li>Under <strong>Display &amp; Placement<\/strong>, either:\n\n<ul>\n<li>Check <strong>Auto-inject on Cart Page<\/strong> and\/or <strong>Auto-inject on Checkout Page<\/strong> for automatic display, or<\/li>\n<li>Place <code>[rankd_free_shipping]<\/code> anywhere on your site manually<\/li>\n<\/ul><\/li>\n<\/ol>\n\n<p><strong>Nothing will appear on your site until you complete step 5.<\/strong><\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"i%20activated%20the%20plugin%20but%20nothing%20is%20showing.%20why%3F\"><h3>I activated the plugin but nothing is showing. Why?<\/h3><\/dt>\n<dd><p>The message doesn't appear until you tell it where to display. Go to <strong>WooCommerce \u2192 Settings \u2192 Shipping \u2192 Free Shipping Progress<\/strong> and either enable one of the Auto-inject options, or place the shortcode <code>[rankd_free_shipping]<\/code> somewhere on your site.<\/p><\/dd>\n<dt id=\"where%20can%20i%20place%20the%20shortcode%3F\"><h3>Where can I place the shortcode?<\/h3><\/dt>\n<dd><p>Anywhere shortcodes work \u2014 pages and posts (Shortcode block in the block editor), widget areas (Text or HTML widget), theme templates via <code>do_shortcode( '[rankd_free_shipping]' )<\/code>, or WooCommerce action hooks in your child theme's <code>functions.php<\/code>.<\/p><\/dd>\n<dt id=\"what%27s%20the%20difference%20between%20auto-inject%20and%20the%20shortcode%3F\"><h3>What's the difference between auto-inject and the shortcode?<\/h3><\/dt>\n<dd><p>Auto-inject hooks into WooCommerce's cart and checkout templates \u2014 no placement needed, works even if you switch themes. The shortcode gives you full control over exactly where the message appears and works on any page. You can use both at the same time.<\/p><\/dd>\n<dt id=\"does%20the%20progress%20bar%20update%20live%3F\"><h3>Does the progress bar update live?<\/h3><\/dt>\n<dd><p>Yes, on all pages. On classic cart\/checkout it responds immediately when WooCommerce fires cart update events. On block-based themes and anywhere else the shortcode is placed, it checks for cart changes every 2.5 seconds and refreshes automatically. Checking pauses when the browser tab is hidden.<\/p><\/dd>\n<dt id=\"my%20store%20has%20multiple%20shipping%20zones%20with%20different%20minimums.%20will%20this%20work%3F\"><h3>My store has multiple shipping zones with different minimums. Will this work?<\/h3><\/dt>\n<dd><p>Not fully \u2014 see the Known Limitation note in the Description. If your zones share the same threshold, there's no problem. If they differ significantly, a geo-aware plugin will serve you better for this specific feature.<\/p><\/dd>\n<dt id=\"how%20do%20i%20hide%20the%20progress%20bar%20and%20show%20text%20only%3F\"><h3>How do I hide the progress bar and show text only?<\/h3><\/dt>\n<dd><p>Add this to <strong>Appearance \u2192 Customize \u2192 Additional CSS<\/strong>: <code>.rankd-fs-bar-track { display: none; }<\/code><\/p><\/dd>\n<dt id=\"how%20do%20i%20style%20the%20message%3F\"><h3>How do I style the message?<\/h3><\/dt>\n<dd><p>The settings page includes a full CSS class reference table. You can also refer to the Styling section below.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20block-based%20themes%20like%20twenty%20twenty-five%3F\"><h3>Does this work with block-based themes like Twenty Twenty-Five?<\/h3><\/dt>\n<dd><p>Yes. On block cart\/checkout pages the plugin injects the message via JavaScript and refreshes it via polling. No extra configuration needed.<\/p><\/dd>\n<dt id=\"will%20this%20work%20with%20elementor%3F\"><h3>Will this work with Elementor?<\/h3><\/dt>\n<dd><p>Yes, on classic WooCommerce cart\/checkout pages with Elementor. Place the shortcode in an HTML widget anywhere on your site for full control over placement.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Show customers how close they are to qualifying for free shipping, with a progress bar and message that updates as they shop.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/312669","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=312669"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/coolhuntersgt"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=312669"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=312669"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=312669"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=312669"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=312669"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=312669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}