Rocket Maps — Searchable Maps, Store Locator & Listings Directory for WordPress
Rocket Maps lets you build fast, fully searchable maps for WordPress and drop them onto any page with a simple shortcode. Choose your map engine — Google Maps, Mapbox or MapLibre — add markers, turn them into a filterable listings directory, and let visitors search by keyword, category, location or distance. Everything — admin panels, search forms, marker editors, CSV tools — runs on a modern React UI with no page reloads.
Live demo: maps.salephpscripts.com
Three Map Engines, One Plugin
Pick the engine that fits your project — or let visitors switch on the fly.
- Google Maps — the classic choice with Places address autocomplete, Street View, Map/Satellite toggle, rotate/tilt control and directions.
- Mapbox GL JS — crisp vector tiles, smooth rotation and zoom, and a library of polished built-in styles (Streets, Outdoors, Light, Dark, Satellite Streets and more).
- MapLibre GL + MapTiler — fully open-source rendering backed by open tiles; no vendor lock-in.
Switch engines in Settings at any time. All markers, listings, categories and search forms stay exactly where they are — only the tile layer changes.
20+ Built-in Map Styles
Every engine ships with a curated set of ready-to-use styles, selectable from a dropdown — no code or JSON required. Google Maps, Mapbox and MapLibre each have their own palette ranging from clean minimal to dark, satellite and terrain.
Markers & Marker Clustering
- Font Awesome icon markers — choose any FA icon and a custom colour per category or per individual marker.
- PNG / custom image markers — upload your own marker graphic; resize with the size slider (30–70 px).
- Image markers — use the listing’s featured photo directly as the map pin.
- Price markers — display the listing price badge right on the pin; ideal for real estate and classifieds.
- Per-category icons — React-powered icon/colour picker on the category edit screen; every category can have its own distinct look.
- Marker clustering — nearby markers merge into a numbered cluster bubble; configurable grid size and multi-level cluster styles keep busy maps clean and fast.
- Drag-and-drop source priority — choose which marker property appears first (icon, image, price) with a simple React list editor.
- Streaming batch loading — markers load in 5 000-row batches over the REST API so even maps with thousands of points open instantly; subsequent batches arrive in the background while the visitor is already panning.
Drag-and-Drop Search Form Builder
A visual React form builder lets you compose the search form field by field — no code needed.
- Keyword search — powered by a MySQL FULLTEXT index over title, description and all custom field values. Results are ranked by relevance; a debounced autocomplete dropdown suggests matches as visitors type.
- Address + radius search — “show everything within 25 km of me” with km/miles toggle. A radius circle appears on the map to show the search area.
- Category filter — hierarchical taxonomy dropdown or checkbox tree.
- Location filter — filter by any location term in the Locations taxonomy.
- Custom field filters — price range slider, list/select/checkbox, date range, opening hours availability and more — every field from your form template can become a search filter.
- “More Filters” separator — hide secondary filters behind a collapsible section to keep the default form tidy.
- Four anchor positions — top-left, top-right, bottom-left, bottom-right; falls back above/below the map on narrow viewports.
- Draggable form — a grip handle lets visitors reposition the form anywhere on the map; the position is remembered per browser.
- Configurable width — set the pixel width on desktop.
- Live results — sidebar listings and map markers update instantly as visitors interact with any filter.
Listings Sidebar & List View
- Collapsible sidebar — left or right, configurable width, open or collapsed by default.
- Listings per page — paginate results; set exactly how many cards appear per page.
- Sort listings — by date, title, price, rating, custom field value, or a random shuffle; choose ascending or descending.
- Fly-to on hover — when a visitor hovers a sidebar card the map smoothly pans and zooms to that marker.
- Marker hover effect — the corresponding map marker highlights when the sidebar card is hovered.
- Configurable sidebar fields — drag-and-drop which custom fields appear on each card.
- List below map — display a full listings grid underneath the map canvas instead of (or alongside) the sidebar.
- Listing detail page — each marker links to a full single-listing page showing all fields, a contact form and directions.
Marker Popups
- Click any marker to open a rich information popup.
- Auto-popup — automatically open the popup of the nearest / most relevant marker on page load.
- Configurable max width and height; closes on outside click (optional).
- Configurable popup fields — choose exactly which custom fields appear in the popup card.
- Directions link — one-click “Get directions” opens the native map app or Google Maps with the listing as the destination.
Custom Fields & Visual Form Builder
A drag-and-drop React form builder lets you design the listing submission form without touching code. Fields are shared across the submission form, sidebar cards, popups and search filters.
- Text — single-line text input.
- Textarea — multi-line rich description.
- Number — numeric value with optional min/max.
- Price — currency-formatted price; used in price markers and price-range search filters.
- URL / Website — clickable link field.
- Email — mailto link on the detail page.
- Phone — tel: link on the detail page.
- Image — photo upload directly from the submission form.
- File — attachment upload (PDF, etc.).
- List / Select / Radio / Checkbox — predefined option sets; multi-select supported.
- Date & Time — datetime picker with formatting options.
- Opening Hours — structured weekly schedule editor; visitors can filter by “open now”.
- Field Groups — organise fields into labelled sections on the submission form.
Frontend Submission & User Dashboard
Let your visitors add and manage their own listings entirely from the frontend — no WordPress admin access needed.
- [webmap-submit] shortcode — drop a fully-featured listing submission form on any page.
- [webmap-dashboard] shortcode — personal dashboard where logged-in users view, edit and delete their own listings, check expiration dates and renew.
- User registration & login — built-in auth forms on the dashboard page; redirect to the dashboard after login.
- Anonymous submissions — optionally allow guests to submit without registering.
- Moderation — hold new submissions for admin review before they appear on the map.
- Listing expiration — set active periods in days, months or years; or make listings permanent.
- One-click renewal — an expired listing can be renewed by the owner with a single button.
- User-controlled expiration — optionally let owners adjust their own expiration date.
- Listing status badges — Active, Expired, Unpaid, Stopped — always visible to the owner.
- Audit log — an append-only history of every lifecycle event (created, activated, expired, renewed, status changed) is stored per listing and visible to admins.
Email Notifications
- Admin notification — email alert whenever a new listing is submitted.
- Activation email — sent to the listing owner when a listing goes live.
- Pre-expiration reminder — configurable number of days before expiry; prompts owners to renew.
- Expiration notification — sent when a listing expires.
- All email templates are fully customisable in Settings.
- Built-in email delivery test tool to confirm your server is sending correctly.
Contact Form
- Built-in contact form on every listing detail page — visitors can message the listing owner without revealing the owner’s email address.
- Contact Form 7 integration — paste a CF7 shortcode to replace the built-in form with your own.
- Optionally restrict the contact form to logged-in users only.
- Google reCAPTCHA v2 and v3 — anti-spam protection on both the contact form and submission form; version and keys configured in Settings with a built-in test tool.
Categories, Tags & Locations
- Hierarchical categories — create nested category trees; each category gets its own marker icon and colour via a React picker.
- Tags — flat tagging taxonomy for flexible cross-category grouping.
- Locations taxonomy — separate hierarchy for geographic regions (e.g. Country → State → City) used in the location filter and address display.
- Categories, tags and location terms are all full-text-indexed so keyword search spans taxonomy names automatically.
Address & Geocoding
- Google Places autocomplete on every address field — starts geocoding as soon as the visitor types.
- “Get my location” button — one-click GPS geolocation fills the address field automatically.
- Manual coordinate override — pin a location on the mini-preview map when the address isn’t enough.
- Configurable address format — drag-and-drop token builder (Address Line 1, Address Line 2, City, ZIP, Country) controls exactly how addresses are displayed in cards, popups and the detail page.
- Country restriction — lock address autocomplete to a single country for regional directories.
CSV Import & Export
- Full CSV import — upload a CSV to bulk-create or update listings; processing runs in chunked REST API batches so large files don’t time out.
- Image import — attach photos from URLs or local paths during import; duplicate detection prevents re-importing the same file.
- Geocoding during import — addresses are geocoded automatically as rows are processed.
- Opening hours import — structured weekly schedule data is parsed from CSV and stored correctly.
- Session-based progress — a live progress bar shows import status; sessions are resumable if the browser is closed.
- CSV export — export all listings (with images as URLs) to a CSV for backup or migration.
- Demo content import — one-click import of pre-built maps, pages and form templates bundled with the plugin.
Map Configuration Panel
Every map has its own dedicated settings panel with eight organised metaboxes:
- General — map width, height (pixels or %), listings limit, sticky scroll (map stays on screen while the page scrolls), loading spinner, auto-geolocation.
- Starting Point — set a fixed camera position and zoom, or auto-fit the viewport to show all markers; configurable radius filter with visual circle; save-and-follow (browser storage or URL).
- Map Style — choose from all built-in presets for the active engine.
- Controls — toggle fullscreen button, camera/rotate control, Map/Satellite switcher, Street View pegman, mouse-wheel zoom, touch dragging (one- and two-finger), center-on-click, zoom-on-click, locations counter (configurable text), min/max zoom bounds.
- Search Form — drag-and-drop React builder, position, width, drag-handle toggle.
- Markers — drag-and-drop source priority list; FA/PNG size slider; advanced per-engine rendering tweaks.
- Clusters — enable/disable, grid size, multi-level cluster styles.
- Popups — enable, auto-open, close-on-click-outside, max width/height, field selector.
- Sidebar & Listings — enable, position, width/height, open-by-default, per-page count, sort order, fly-to/hover effect, field selector.
Colour Customisation
- Global colour palette in Settings covers: primary colour, secondary colour, link colour, link hover colour, button primary/secondary/text colours.
- Optional gradient on buttons for a more polished look.
- All colours are applied via CSS custom properties — they cascade through every frontend component automatically.
Shortcodes
-
[webmap id=”N”] — embed any map by post ID or slug; accepts
width,height,geolocationand other per-embed overrides. - [webmap-submit] — frontend listing submission form with auth, reCAPTCHA and file upload.
- [webmap-dashboard] — user’s personal listings manager (list, edit, delete, renew, check expiry).
- [rmaps-engine-switcher] — inline switcher widget to let visitors toggle between Google, Mapbox and MapLibre on any page.
Performance Architecture
- REST API backend — every frontend operation (search, marker load, popup data, listing CRUD) goes through a clean versioned REST API; no legacy AJAX handlers.
- Streaming batch loader — initial config payload carries the first batch; the React map requests additional 5 000-marker batches in the background without blocking interaction.
- Info-batch endpoint — full popup payloads for multiple markers are fetched in a single request when a cluster is opened, not one-by-one.
-
FULLTEXT search index — a dedicated
wp_rmaps_search_indextable with a MySQL FULLTEXT index powers relevance-ranked keyword search without scanning postmeta. - React frontend — the map, sidebar, search form and all admin panels are built with React; DOM updates are minimal and efficient.
Setup Wizard & Migration
- Step-by-step install wizard — on first activation a guided 4-step wizard walks through engine selection, API key entry, first map creation and demo import.
- One-click demo import — import a fully-configured demo map, its WordPress page and form template in seconds.
- Migration from Web 2.0 Google Maps — a dedicated one-shot migration path upgrades all markers, categories, listings, custom fields, settings and saved options from the legacy plugin without data loss.
- Diagnostics page — built-in tools to test API keys, reCAPTCHA configuration, email delivery and the search index.
Translation & Compatibility
-
Translation-ready — ships a complete
.potfile; every user-facing string passes throughgettext; load your.mofile and the whole plugin is instantly localised. - WPML compatible — language-dependent IDs are resolved through the WPML and Polylang filters so multilingual sites work out of the box.
- Fully responsive — the map, sidebar, search form and dashboard all reflow gracefully on phones and tablets.
- WordPress 6.0+ and PHP 7.4+.
What’s Included
- Rocket Maps plugin (all features above).
- Companion rmaps-theme — a clean, dark/light WordPress theme pre-wired to the plugin (engine switcher in the header, Buy-plugin CTA, feature grid on the front page); ready to use as a demo site or starting point.
- Demo content JSON (maps, pages, form template) importable in one click.
- Full documentation site bundled with the plugin.
- 6 months of item support.
Requirements
- WordPress 6.0 or higher.
- PHP 7.4 or higher.
- An API key from your chosen map provider:
— Google Maps: browser key (required) + server key (optional, for server-side geocoding).
— Mapbox: Mapbox access token.
— MapLibre + MapTiler: MapTiler API key.
Keys are stored on your server only and are never sent to us.
