Skip to content
WP Go Maps Documentation

Initial Setup

3
  • Installing the Plugin
  • Map Engine Selection Guide
  • Changing your Map Engine

Map Engines

8
  • Creating a Google Maps API key
  • Protecting your Google Maps API key from unauthorized use – Setting up website restrictions (HTTP referrers)
  • Creating an Azure Maps subscription key
  • Creating a Stadia Maps API Key
  • Creating a MapTiler API Key
  • Creating a LocationIQ Access Token
  • Address Providers
  • Tile Servers & Tilesets

First-time users

3
  • Creating your first map
  • Creating your first marker
  • Displaying your Map on your WordPress site

Map Features

50
  • Map Features Overview
  • Accessibility and WCAG Compliance
  • Shortcodes
    • Shortcodes – Quick Start
    • Map Shortcode
    • Store Locator Shortcode
    • Category Filter Shortcode
    • Category Legends Shortcode
    • Infowindow Shortcode
    • Marker Listing Shortcode
    • Directions Shortcode
    • Using WP blocks
  • Markers
    • Editing a Marker
    • Marker Gallery
    • Fine-tuning a Marker’s position
    • Adding video to your Marker
    • Embedding iframes in your markers
    • Customizing your info Window
    • Info Window Styles
    • Using Custom marker Icons on your map
    • Sticky Markers
    • Adding Custom fields to your Marker
    • Marker Listing
    • Enabling distance features
  • Map Display
    • Setting your Map type
    • Using your map in a widget
    • Styling Wizard
    • Using GET variables to Control your Map
  • Filtering
    • Store Locator
    • Marker Filtering
    • Enabling the category Legend
    • Shape Filtering
  • Shapes
    • Shape Info Windows
    • Shape Library
    • Polyline & Polygon Line Styles
  • Performance & Analytics
    • Optimization
    • Map Insights
    • Marker Caching
  • Drawing Tools
    • Adding a Polygon
    • Adding a Polyline
    • Adding a Circle
    • Adding a Rectangle
    • Adding an image overlay
    • Adding a Point Label
    • Adding a Heatmap
  • Themes
    • Creating a Custom Map Theme – Google maps engine
    • Change your Map Theme – Theme Presets for OpenLayers & Leaflet
    • Edit your Map Theme – Theme Editor for OpenLayers & Leaflet
    • Using a custom image as a map tile
  • Directions
    • Enabling Directions
    • Enabling Directions with OpenRouteService

Integrations

8
  • Integrations Overview
  • WooCommerce – Checkout Map
  • WooCommerce – Product Location Editor
  • Translating the plugin with WPML
  • Post Type Locations
  • Advanced Custom Fields
    • Advanced custom fields
    • Enabling simple ACF Fields for display in the description field of the Info Windows of your ACF Map
    • Using Custom images as the marker icons for your ACF map markers

Importing and Exporting Data

5
  • Importing Files
  • Exporting Data and Settings
  • Bulk JPEG Import
  • Using KML and GeoRSS files
  • Improving Reliability of Scheduled Imports

Frequently Asked Questions

30
  • System Requirements
  • How to create an Administrator account for Support agents
  • GDPR
  • Licensing & Account
    • Purchase Model
    • Plugin Licenses
    • I am an NPO
    • I did not receive my invoice?
    • How can I upgrade my purchase of WP Go Maps
    • Where can I get a new download of the plugin
    • How do I update WP Go Maps?
  • Map Functionality
    • Map Tilt Controls
    • Marker Render Mode
    • Finding Custom Marker Icons
    • Why did my suggestions stop working?
    • How do I change scroll/pan behaviour on a mobile device
    • How do I dynamically set the search area in the Store locator
    • How do I Start the map in Street View
    • How to Create a Marker Cluster (Group)
    • How to use real time tracking
    • Marker Ratings
    • Why aren’t my ACF, WooCommerce or Post Locations Markers showing on my map?
  • Technical
    • How to add Support agents to your Google API Project
    • How do I change the WP Go Maps Plugin Language
    • How do I restrict Autocomplete to a Specific Country
    • Using WP Go Maps with Elementor
    • How can I disable externally hosted Google fonts so that I can be GDPR compliant?
    • WP Go Maps and Webcraftic Clearfy
    • I have a Customization Request
  • User Generated Content
    • How to allow visitors to create markers
    • Separating the VGM form from the Map

Troubleshooting

12
  • Autocomplete Disabled
  • Use my location is not working
  • I’m Getting a Maps Multiple API Error
  • I’m Getting a “jQuery not found” Error
  • My Map is Not Showing On My Website
  • Markers Are Not Showing on My Map on the Front-end
  • API Not Activated Map Error
  • This page can’t load Google Maps correctly
  • This API project is not authorized to use this API
  • Geocode failed (Request denied) error
  • My import is not working – Geocode failed (Missing address, lat and lng) (Rows: 2, 3, 4, 5, 6, 7, 8….)
  • This folder does not exist, please create it.

Customization

9
  • Customization Guides
  • Markers & Info Windows
    • Dynamic Marker Creation
    • Open Marker by Title (URL)
    • Open Marker by Marker Field (URL)
    • Updating Panel Info Window Dynamically
  • Maps
    • Map Manipulation
    • Refresh Map in Realtime
  • Database
    • Creating a Marker (PHP)
    • Edit & Remove Marker (PHP)

Developers

91
  • Basic Changelog
  • Pro Changelog
  • Gold Changelog
  • VGM Changelog
  • Templates
    • Template Overrides
  • Hooks
    • Filters
      • Basic
        • wpgooglemaps_filter_map_div_output
        • wpgmza_admin_persistent_notices_dynamic_titles
        • wpgmza_admin_persistent_notices_dynamic_messages
        • wpgmza_admin_persistent_notice
        • wpgmza_admin_ui_menu_current_action
        • wpgmza_create_{$class}
        • wpgmza_gdpr_notice
        • wpgmza_gdpr_settings_tab_content
        • wpgmza_plugin_get_default_settings
        • wpgmza_google_maps_api_params
        • wpgmza_internal_engine_build_version_plugins
        • wpgmza_internal_engine_build_version_flags
        • wpgmza_internal_engine_build_version
        • wpgmza_xml_cache_generated
        • wpgmza_fetch_integrated_markers
        • wpgmza_plugin_get_localized_data
        • wpgmza_settings_danger_zone_truncate_tables
        • wpgmza-get-library-dependencies
        • wpgmza_global_settings_tabs
        • wpgmza_global_settings_tab_content
        • wpgmza_global_settings_save_redux
        • wpgmza_map_shortcode_get_default_attributes
        • wpgmza_shortcode_map_options
        • wpgmza_map_shortcode_get_html_attributes
        • wpgmza_shortcode_map_components
        • wpgmza_shortcode_map_container_before
        • wpgmza_shortcode_map_container_inside
        • wpgmza_shortcode_map_container_after
        • wpgmza_sl_shortcode_get_default_attributes
        • wpgmza_standalone_component_classlist
        • wpgmza_standalone_component_wrap_attributes
        • wpgmza_store_locator_radii_options
        • wpgmza_localized_strings
        • wpgmza_system_info_compile_items
        • wpgmza-map-editor-navigation-{$dataGroup}
        • wpgmza-map-editor-settings-{$dataGroup}
        • wpgmza-map-editor-settings-blocks
        • wpgmza-map-editor-sidebar-blocks
        • wpgmza_styling_settings_save
    • Actions
      • Basic
        • wpgmza_admin_notice_process_background_action
        • wpgooglemaps_hook_user_js_after_core
        • wpgooglemaps_basic_hook_user_js_after_core
        • wpgooglemaps_hook_user_js_after_localize
        • wpgmza_admin_persistent_notices_create_defaults
        • wpgmza_admin_ui_menu_registered
        • wpgmza_admin_ui_menu_items_added
        • wpgmza_admin_ui_render_content_before
        • wpgmza_admin_ui_render_{$action}_before
        • wpgmza_admin_ui_render_{$action}_after
        • wpgmza_admin_ui_render_content_after
        • wpgmza_check_map_editor_backwards_compat
        • wpgmza_admin_ui_render_content_before
        • wpgmza_admin_ui_render_{$pageSlugged}_before
        • wpgmza_admin_ui_render_{$pageSlugged}_after
        • wpgmza_admin_ui_render_content_after
        • wpgmza_country_select_created
        • wpgmza_require_feature_classes
        • wpgmza_installer_page_created
        • wpgmza_installer_page_on_post
        • wpgmza_map_list_page_created
        • wpgmza_xml_cache_saved
        • wpgmza_page_dom_add_form_nonces
        • wpgmza_plugin_core_on_activate
        • wpgmza_plugin_core_on_deactivate
        • wpgmza_plugin_core_on_init
        • wpgmza_plugin_core_on_first_run
        • wpgmza_plugin_load_scripts
        • wpgmza_plugin_core_update_all_xml_files
        • wpgmza_settings_danger_zone_before_delete
        • wpgmza_settings_danger_zone_after_delete
        • wpgmza_register_rest_api_routes
        • wpgmza_rest_api_init
        • wpgmza_script_loader_enqueue_styles
        • wpgmza_enqueue_scripts
        • wpgmza_script_loader_enqueue_scripts
        • wpgmza_script_loader_localize_data_complete
        • wpgmza_script_loader_enqueue_custom_js
        • wpgmza_script_loader_enqueue_custom_css
        • wpgmza_script_loader_enqueue_codemirror
        • wpgmza_script_loader_enqueue_writersblock
        • wpgmza_global_settings_page_created
        • wpgmza_shortcodes_registered
        • wpgmza_shortcode_before_output
        • wpgmza_base_upgrade_hook
        • wpgmza_map_edit_page_created
        • wpgmza_styling_page_created

Archived: Legacy (V9)

39
  • First-time users (Legacy)
    • Creating your first map (Legacy)
    • Creating your first marker (Legacy)
    • Displaying your Map on your WordPress site (Legacy)
  • Map Features (Legacy)
    • Store Locator (Legacy)
    • Shortcodes (Legacy)
    • Setting your Map type (Legacy)
    • Using GET variables to Control your Map (Legacy)
    • Using your map in a widget (Legacy)
    • Markers (Legacy)
      • Editing a Marker (Legacy)
      • Sticky Markers (Legacy)
      • Marker Gallery (Legacy)
      • Enabling distance features (Legacy)
      • Marker Filtering (Legacy)
      • Embedding iframes in your markers (Legacy)
      • Adding video to your Marker (Legacy)
      • Customizing your info Window (Legacy)
      • Marker Listing (Legacy)
      • Using Custom marker Icons on your map (Legacy)
      • Adding Custom fields to your Marker (Legacy)
      • Fine-tuning a Marker’s position (Legacy)
    • Drawing Tools (Legacy)
      • Adding a Polygon (Legacy)
      • Adding a Polyline (Legacy)
      • Adding a Circle (Legacy)
      • Adding a Rectangle (Legacy)
      • Adding a Heatmap (Legacy)
    • Themes (Legacy)
      • Creating a Custom Map Theme – Google maps engine (Legacy)
      • Change your Map Theme – Theme Presets (Legacy)
    • Directions (Legacy)
      • Enabling Directions (Legacy)
      • Enabling Directions for OpenLayers (Legacy)
    • User Interface Style (Legacy)
      • User Interface Style (Legacy)
  • Integrations (Legacy)
    • Advanced custom fields (Legacy)
    • Translating the plugin with WPML (Legacy)
    • WooCommerce – Product Location Editor (Legacy)
    • WooCommerce – Checkout Map (Legacy)
  • Importing and Exporting Data (Legacy)
    • Importing Files (Legacy)
    • Exporting Data CSV
    • Exporting Data (JSON)
    • Bulk JPEG Import (Legacy)
    • Using KML and GeoRSS files (Legacy)
View Categories
  • Home
  • Docs
  • Developers
  • Templates
  • Template Overrides

Template Overrides

7 min read

WP Go Maps V10 and above support replacing our internal HTML templates in a few ways, allowing you to easily customize the underlying structure, layout and appearance of nearly every components within the plugin.

This includes our Store Locator, Marker Listings, Directions, and Panel structures on the frontend! For more advanced users, thanks to our underlying core architecture, developers can also take full control of the admin templates using these same techniques!

Modifying our default templates is the most powerful and future-proof way to integrate the map interface perfectly into any theme or integrated customer experience. You can achieve deep customization without ever needing to modify the core plugin files, ensuring your changes persist across plugin updates.

When Should You Override a Template? #

You should override a template when simple CSS or JavaScript modifications are insufficient, or where no internal setting/control is available. Template overrides are the correct approach when your goals require changing the underlying HTML markup.

Let’s take a look at a few example scenarios that might warrant a template override:

  • You need to rearrange the order of elements, and CSS reordering is not possible.
  • You need to change the wrapping tags to one of our elements to better support your theme styles.
  • You would like to fully remove or add new elements to one of our components
  • You would like to add a new field to a form, or components (Additional logic handle would be needed as well)
  • You are developing a solution for a client with very specific needs and would like to restructure, or isolate components to achieve a very specific niche goal.

Template Files #

Most of our HTML is now controlled via a templated HTML/PHP file which we load as needed within the plugin, and populate dynamically using PHP.

In all cases, regardless of which technique you use to override a template it is important that your own variation of that template contain the same attributes and classnames as our original files. This is to ensure events are triggerred correctly, and that population of dynamic content (inputs, translations, media, etc) continue to function after you complete your override.

To locate, and confirm if a component can be replaced with your own templates, navigate to the respective template folder in each of our plugins:

  • Basic: wp-content/plugins/wp-google-maps/html/atlas-novus/
  • Pro Add-on: wp-content/plugins/wp-google-maps-pro/html/atlas-novus/

If a file is available within these folders it is almost certainly possible to override it using our template system. There are exceptions to this rule, as some files may be replaced dynamically, or fallback to an alternative template in rare cases.

What About Files Outside of the Atlas Novus Folder? #

Some files, considered legacy files, like older marker listings, or older UI panels are still in use and available even within the Atlas Novus build engine.

Yes, you can override these files as well, and it may be necessary, particularly for marker listing overrides, but your mileage may vary as these files do follow a slightly older structure.

How Can I View These Folders? #

We recommend viewing and downloading the templates via FTP or your hosting Control Panel, however, you can also view the basic files directly on our Github.

Changing Templates via Your WordPress Theme #

This method involves copying the template file into a specific folder structure within your active Child Theme. This is the recommended approach for most visual and structural modifications.

We recommend this approach for developers who would like to modify our templates in a way that will not be undone by future plugin updates, without the need for a dedicated customization plugin.

Parent themes should NOT be used to hold these changes, as any updates released by a theme developer would likely remove/undo your changes. Additionally, if anything goes wrong while making these changes to a parent WordPress theme, it could lead to site-crashing errors that cannot be easily undone.

Instead, we highly recommend creating a child theme. This allows you to extend your parent theme in a safe way, override templates and change structures without any risk of future updates, or file crashes directly within the primary parent theme files.

Child Theme Overrides #

For our example, we will assume you are using a child theme as it is the safest way to approach this kind of override.

  1. Start by navigating to wp-content/plugins/wp-google-maps/html/atlas-novus/
  2. Copy the preferred template file, for example store-locator.html.php
  3. Add it within your child theme under wp-content/themes/childtheme/wp-google-maps/store-locator.html.php

You should end up with a structure like the one found above. The filename (store-locator.html.php) must remain unchanged, and it must be located within a folder named wp-google-maps for the override to take effect.

  1. Edit your new custom template (wp-content/themes/childtheme/wp-google-maps/store-locator.html.php), in our example we will add a custom CSS class to the store locator, which we will style within our child theme stylesheet:

  1. Save the file and refresh your map page, and you should see that WP Go Maps has automatically replaced our default store locator with your new customized store locator instead:

Note: When you implement a theme override like this, if our core plugin receives an update, the plugin architecture will update as expected, but the template for your component will not receive that update. This allows the rest of the plugin to remain up to date, while still allowing for deep customization.

Changing Templates via Hooks #

This advanced method involves using a PHP filter to programmatically change the file path the plugin uses to locate a template. This is useful for themes that cannot use a traditional child theme or when managing templates across multiple plugins.

It can also be useful if you instead prefer to make a custom plugin (WP Go Maps Customizations for My Site) to contain your template changes. Doing this may also be helpful if you need the same changes across multiple websites.

Our system utilizes the WordPress action/filter mechanism, specifically a filter hook, to allow developers and advanced users to override the default template file paths, and point them to their own files instead.

The Template Filter #

The core idea is to filter the computed template path file before the template is loaded into our system. We use this same hook for our internal theme filtering mentioned above.

Our internal filter is named: wpgmza_internal_engine_template_path

Here’s an example which filters the store-locator.html.php template and replaces it path with a local plugin file instead:

<?php function my_custom_plugin_template_override($template, $path) { if ($path === 'store-locator.html.php') { $custompath = trailingslashit(__DIR__) . 'templates/custom-locator.php'; if (file_exists($custompath)) { return $custompath; } } // Always return the original $template if no override was applied return $template; } // Hook the custom function into the plugin's template path filter add_filter('wpgmza_internal_engine_template_path', 'my_custom_plugin_template_override', 10, 2);

What are Hooks? #

WordPress hooks are a core way for WordPress plugins and themes to interact with eachother, without the need to modify core code, this allows you to extend functionality within our plugin far more easily. If you’d like to learn mode about hooks, please take a look at the WordPress documentation.

Do you have more Hooks? #

Yes! We have many hooks included within WP Go Maps, across our Basic, Pro, Gold and VGM Add-ons. At the moment you can search and explore all basic hooks in our documentation: Hooks

In the future, we plan on also documenting the Pro, Gold, and VGM hooks more diligently.

How can I handle Custom Logic? #

It’s not uncommon when altering tempaltes, to add new controls and form fields. In these cases it may be necessary to develop your own logic to handle these events.

For JavaScript based events, realtime click events for example, we recommend binding your own event handlers using jQuery within a Custom Script.

For PHP logic, you may want to take a look at your developer hooks to determine the best place to implement your custom logic.

Updated on November 10, 2025

Was this helpful?

  • Happy
  • Normal
  • Sad
Share Document:
  • Facebook
  • X
  • LinkedIn
  • Pinterest
Table of Contents
  • When Should You Override a Template?
  • Template Files
    • What About Files Outside of the Atlas Novus Folder?
    • How Can I View These Folders?
  • Changing Templates via Your WordPress Theme
    • Child Theme Overrides
  • Changing Templates via Hooks
    • The Template Filter
    • What are Hooks?
    • Do you have more Hooks?
    • How can I handle Custom Logic?
Documentation by WP Go Maps