{"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-24T03:40:35","modified_gmt":"2026-05-24T03:40:35","slug":"rankd-free-shipping-progress-bar","status":"publish","type":"plugin","link":"https:\/\/bcc.wordpress.org\/plugins\/rankd-free-shipping-progress-bar\/","author":23191840,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.0","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-24 03:40:35","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":185,"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"},"1.1.0":{"tag":"1.1.0","author":"coolhuntersgt","date":"2026-06-30 20:34:34"}},"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},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3593000,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3593000,"resolution":"1","location":"assets","locale":"","width":1905,"height":1798},"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},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3593000,"resolution":"4","location":"assets","locale":"","width":800,"height":1262}},"screenshots":{"1":"The settings page \u2014 configure threshold, messages, coupon code, role exclusions, and display placement.","2":"The Appearance tab \u2014 color pickers, font selector, border radius, and live preview with WCAG contrast checking.","3":"The \"Almost There\" notice state on the cart page.","4":"The \"Qualified\" success state on the cart page."}},"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":{"banner":"https:\/\/ps.w.org\/rankd-free-shipping-progress-bar\/assets\/banner-772x250.png?rev=3593000","banner_2x":"https:\/\/ps.w.org\/rankd-free-shipping-progress-bar\/assets\/banner-1544x500.png?rev=3534148","banner_rtl":false,"banner_2x_rtl":false},"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=3593000","caption":"The settings page \u2014 configure threshold, messages, coupon code, role exclusions, and display placement."},{"src":"https:\/\/ps.w.org\/rankd-free-shipping-progress-bar\/assets\/screenshot-2.png?rev=3534148","caption":"The Appearance tab \u2014 color pickers, font selector, border radius, and live preview with WCAG contrast checking."},{"src":"https:\/\/ps.w.org\/rankd-free-shipping-progress-bar\/assets\/screenshot-3.png?rev=3534148","caption":"The \"Almost There\" notice state on the cart page."},{"src":"https:\/\/ps.w.org\/rankd-free-shipping-progress-bar\/assets\/screenshot-4.png?rev=3593000","caption":"The \"Qualified\" success state on the cart page."}],"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 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 <code>[rankd_free_shipping]<\/code> 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>Full appearance control \u2014 colors, font, font size, and border radius via an in-page Appearance tab with live preview and WCAG AA contrast checking<\/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<\/li>\n<li>Developer filters for threshold, messages, and subtotal calculation<\/li>\n<li>CSS class reference built into the Appearance tab<\/li>\n<\/ul>\n\n<p><strong>Where to find the settings<\/strong><\/p>\n\n<p>After activating, go to <strong>WooCommerce \u2192 Settings \u2192 Free Shipping Progress<\/strong>. The page has two in-page tabs: <strong>Settings<\/strong> for the threshold, messages, coupon, and role exclusions, and <strong>Appearance<\/strong> for colors, fonts, and styling.<\/p>\n\n<h3>Developer Filters<\/h3>\n\n<p>For developers who need to customize behavior beyond the settings page, the following filters are available:<\/p>\n\n<pre><code>rankd_fs_threshold \u2014 filters the threshold amount before comparison. Receives the saved threshold as a float.\n\nrankd_fs_subtotal \u2014 filters the cart subtotal used for the comparison. Receives `WC()-&gt;cart-&gt;get_cart_contents_total()` by default. Useful if your store needs a different calculation (e.g. including tax, or excluding certain product categories).\n\nrankd_fs_msg_notice \/ `rankd_fs_msg_success` \/ `rankd_fs_msg_coupon_line` \u2014 filter the raw message strings before merge tags are processed. Each receives the saved message text.\n<\/code><\/pre>\n\n<p>Example:<\/p>\n\n<pre><code>add_filter( 'rankd_fs_threshold', function( $threshold ) {\n    return is_user_logged_in() ? 75 : 50;\n});\n<\/code><\/pre>\n\n<h3>Styling<\/h3>\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 message\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>rankd-free-shipping-progress-bar<\/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 Free Shipping Progress<\/strong><\/li>\n<li>Set your threshold amount and customize your messages<\/li>\n<li>Enable auto-inject or place <code>[rankd_free_shipping]<\/code> on your site<\/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>Go to <strong>WooCommerce \u2192 Settings \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=\"does%20the%20progress%20bar%20update%20live%3F\"><h3>Does the progress bar update live?<\/h3><\/dt>\n<dd><p>Yes, on all pages. Classic cart\/checkout responds immediately to WooCommerce cart update events. Block-based themes and other contexts update via a polling loop every 2.5 seconds.<\/p><\/dd>\n<dt id=\"how%20do%20i%20customize%20the%20colors%20and%20fonts%3F\"><h3>How do I customize the colors and fonts?<\/h3><\/dt>\n<dd><p>Go to <strong>WooCommerce \u2192 Settings \u2192 Free Shipping Progress<\/strong> and click the <strong>Appearance<\/strong> tab. You'll find color pickers for all states, font family, font size, and border radius controls, with a live preview that updates as you make changes.<\/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. This plugin shows one threshold to all visitors. If your zones have the same threshold there's no problem. If they differ significantly, a geo-aware plugin will serve you better for this 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 <code>.rankd-fs-bar-track { display: none; }<\/code> to <strong>Appearance \u2192 Customize \u2192 Additional CSS<\/strong>.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20elementor%2C%20divi%2C%20or%20beaver%20builder%3F\"><h3>Does this work with Elementor, Divi, or Beaver Builder?<\/h3><\/dt>\n<dd><p>Yes. The plugin outputs standard HTML and CSS with <code>body<\/code>-scoped selectors to handle specificity from page builders. The font selector on the Appearance tab detects fonts already registered by your page builder.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20caching%20plugins%3F\"><h3>Does this work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. The progress message itself is excluded from static page caching by design \u2014 it's refreshed via AJAX after page load, so even on a fully cached page the displayed amount will update to reflect the current cart. If your host or caching plugin caches AJAX\/admin-ajax.php responses (uncommon, but some aggressive configurations do), you may need to exclude <code>admin-ajax.php<\/code> requests from caching for live updates to work correctly.<\/p><\/dd>\n<dt id=\"does%20the%20threshold%20account%20for%20tax%3F\"><h3>Does the threshold account for tax?<\/h3><\/dt>\n<dd><p>The threshold compares against your cart's subtotal before tax (<code>get_cart_contents_total()<\/code>), which matches how WooCommerce's own free shipping zone settings calculate eligibility in most configurations. If your store has an unusual tax setup where this doesn't match, the <code>rankd_fs_subtotal<\/code> filter (see Developer Filters below) lets you override the calculation.<\/p><\/dd>\n<dt id=\"is%20this%20compatible%20with%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>Is this compatible with High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Yes. The plugin declares HPOS compatibility and doesn't interact with order data directly \u2014 it only reads the current cart session, so HPOS has no effect on its behavior.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li><strong>New: Appearance tab.<\/strong> A full visual customization panel \u2014 color pickers for every state (background, border, text, and progress bar fill for both the \"Almost There\" and \"Qualified\" messages), font family selector that automatically detects fonts already registered by your theme and page builder (Elementor Pro kit fonts, Google Fonts, WP Fonts API), font size with px\/em\/rem units, and separate border radius controls for the message box and the progress bar itself.<\/li>\n<li><strong>New: Live preview.<\/strong> Both message states render side by side directly on the Appearance tab and update instantly as you adjust any setting \u2014 no need to save and check the front end.<\/li>\n<li><strong>New: WCAG AA contrast checking.<\/strong> Each preview state shows a pass\/fail badge with the calculated contrast ratio, so it's easy to catch low-contrast color combinations before they reach customers.<\/li>\n<li><strong>New: Reset to Defaults<\/strong> button restores all Appearance settings in one click.<\/li>\n<li><strong>New: Developer filters<\/strong> \u2014 <code>rankd_fs_threshold<\/code>, <code>rankd_fs_subtotal<\/code>, <code>rankd_fs_msg_notice<\/code>, <code>rankd_fs_msg_success<\/code>, and <code>rankd_fs_msg_coupon_line<\/code> for advanced customization. See the Developer Filters section above.<\/li>\n<li>Fixed: settings page now extends <code>WC_Settings_Page<\/code> for fully reliable saving \u2014 previous versions could lose settings under certain WooCommerce configurations.<\/li>\n<li>Fixed: setup reminder notice is now dismissible.<\/li>\n<li>Improved: Google Fonts detection now correctly preserves multi-word font names (e.g. \"Open Sans\", \"Roboto Slab\").<\/li>\n<\/ul>\n\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:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/312669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=312669"}],"author":[{"embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/coolhuntersgt"}],"wp:attachment":[{"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=312669"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=312669"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=312669"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=312669"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=312669"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bcc.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=312669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}