1.5.0
Latest releaseBuilds on the Locator Builder with a full opening-hours subsystem (per-retailer schedules, country holiday sync, “Open now” badges and an availability filter), four new Store Locator templates, retailer-name search, a themed scroll area and dropdowns, plus a batch of frontend and admin fixes.
Added Opening hours & availability 5
-
Per-retailer opening hours. A weekly schedule (multiple open/close ranges per day, closed days) edited from a new Opening hours section, backed by
OpeningHoursServiceand a dedicated/opening-hoursREST surface. -
Country holiday presets + sync. Pick countries and auto-populate public-holiday closures via
HolidaySyncService. Configurable under Settings → Advanced → Holiday sync. - “Open now” status badges on result cards and the marker popup, computed from the schedule and site timezone.
- Site-wide opening-status filter — narrow search results to retailers that are currently open.
-
Opening hours on product cards +
openingHoursenrichment in the Schema.orgLocalBusinessJSON-LD.
Added Store Locator & templates 7
- Retailer-name search — the search box now matches retailer names alongside addresses.
- Themed custom scroll area (Radix-style) for the result list, replacing the native scrollbar so it matches dark templates.
- Show all retailers before search — a Settings toggle renders the full list on first load.
-
show_search_barshortcode attribute to hide the search bar for curated, pre-filtered locators. -
New templates —
grid,overlay,distance-boardanddark-rail, bringing the built-in catalogue to nine. - Mobile collapse toggles + responsive split layout so the map/list split adapts on small screens.
- Retailer phone & email on product cards — contact details now render on the per-product “Where to Buy” cards.
Changed Behavior & layout refinements 4
-
Themed custom combobox for the type filter + sort dropdowns via a shared
lib/combo-select.js— token-driven dark popup that matches every template. Keyboard a11y preserved. - Overlay template layout — root no longer participates in the global split grid; search-bar variants now mirror Modern inside the floating panel.
-
Distance Board layout —
map-only/list-onlyare no longer coerced to split, and distance tiers now render as tabs (Nearest / Nearby / Further). - Distance Board distance-tier list converted from stacked accordions to a single-active tab interface.
Fixed Bug fixes 8
- Demo data SVG logos now render on the single-product “Where to Buy” cards instead of a broken image.
-
HTML entities decoded in dashboard analytics names (e.g.
&→&). - Fixed a TDZ crash that could abort the Store Locator frontend mount before it rendered.
-
Removed a dead
DemoPreferencesimport that was breaking the admin app build. - Distance Board list overlap + missing scrollbar resolved when results overflow.
-
Store Locator
intro_textpreserved on JS mount (required for the Distance Board hero topbar). - Overlay & Grid templates with non-horizontal card variants no longer squeeze the card body into the logo column.
-
Explicit
template="grid"now wins over site-wide Settings → Templates overrides; layout applies reliably on the storefront.
1.4.0
Locator Builder
Turns the Store Locator into a first-class authoring system: reusable named configurations, a step-by-step wizard with live preview, import/export for cross-site portability, an Elementor widget, and wp rmfw config CLI parity. Existing shortcodes and blocks keep working byte-identically until a site-default configuration is defined.
Added Locator Configurations 10
-
rmfw_locator_configcustom post type with seven post-meta keys, revisions and trash via WP core. Inert on the dashboard — all authoring happens in the React admin at#/locator-builder. -
REST surface — ten routes under
configs: list / get / create / update / delete / duplicate / set-default / export / import / preview (per-IP rate-limited). -
ConfigArgsValidator+ConfigResolverservices — server-side validation and per-request-cached lookup by ID / slug / site-default flag, with draft-visibility gating. -
Shortcode
config=+ blockconfigId/configSlugattributes — per-instance attrs still override stored args. - Locator Builder admin route — card-grid list with duplicate / export / delete / set-default inline, empty-state templates, and an Import JSON drop-zone.
- Step-by-step wizard — 7 steps (Basics → Layout → Search → Map → Results → Template → Publish) with live preview and 3-second autosave.
- Elementor widget — Store Locator under a new Retailers Management category, inert on sites without Elementor.
-
wp rmfw configCLI family — eight subcommands includingaudit, which walkswp_postsfor stale references after a delete. STDIN-friendly. -
JSON schemaVersion=1 import/export — cross-site portable; slug collisions get suffixed,
isDefaultis ignored on import. - Scaffolded adapter loaders for Divi, Bricks, Beaver Builder & UXBuilder — inert today, reserving namespace for future widget work.
Changed Render path 2
-
render_container($args)accepts two new keys:configIdandconfigSlug. Stored args merge under caller-supplied args (caller always wins). -
Documented behavior change: bare
[rmfw_store_locator]on a site with a default config now renders through that default’s args.
Fixed Admin-menu regressions 2
-
Fixed admin menu breaking on sites missing a default cap primitive — reverted the CPT to
capability_type: 'post'while keeping authorship admin-only. -
Fixed a fatal on Elementor-less sites — added a
class_existsguard beforeStoreLocatorWidgetextends\Elementor\Widget_Base.
Docs Documentation 1
-
New guides: Builder Plan, Tasks, P1 back-compat smoke matrix, User Guide, and a
wp rmfw configCLI reference section.
1.3.0
Templates & themingThe Store Locator goes from a fixed widget to a visual system: five built-in templates, a block-editor template picker, a Settings → Templates admin tab, interactive filters, custom call-to-action buttons, a WooCommerce shop filter, and six Google Maps style presets.
Added Templates & Store Locator features 9
- Five built-in templates (Modern / Minimal / Dark Mode / Corporate / Vibrant) — each with its own palette, card layout, search bar style and map style.
- Block editor template picker + Settings → Templates admin tab with accent colour picker, card variant, search bar, map style and CTA configuration.
-
58-token CSS vocabulary — one
--rmfw-sl-accentoverride rolls through buttons, hover states, links and markers. - Distance unit toggle (km / miles), interactive type-filter chips, and a result count + sort dropdown.
- Favorites / shortlist — heart icon per card, persisted in browser local storage with a “Saved stores” toggle.
- Custom call-to-action buttons — up to two CTAs per card across six actions and four visual styles.
-
View Products shop filter (WooCommerce) deep-linking to
/shop/?rmfw_retailer=<id>with a clearable banner. - Taxonomy-driven map markers + six Google Maps style presets (Standard / Silver / Retro / Dark / Night / Aubergine).
-
Built-in smoke-test CLI (
wp rmfw template smoke / list / tokens / render) + a public read-onlyGET /templatesREST endpoint.
Breaking CSS token renames (Store Locator only) 2
-
Token renamed:
--rmfw-sl-muted→--rmfw-sl-text-secondary. -
Token renamed:
--rmfw-sl-card-hover-bg→--rmfw-sl-card-bg-hover. Several default values also shifted slightly (cosmetic).
Changed Demo-data onboarding UX 5
- Full-screen first-run onboarding modal with Skip / Load demo data, plus an amber “sample data active” banner on every admin page.
-
Delete-demo-data confirmation modal with a typed
DELETEconfirmation. - Demo Data tab repositioned as the advanced surface (SeedWizard + ResetCard); the pre-import banner is retired.
-
New REST + state surfaces:
/welcome/statusfields,/onboarding/complete|reset, and per-user banner dismissal. -
New WordPress actions
rmfw_after_demo_seed/rmfw_after_demo_resetfor third-party analytics hooks.
1.2.0
Earlier releaseThe previous release. No consolidated changelog was maintained prior to 1.3.0 — see the commit history for details.