AJAX Forms

Create AJAX powered proximity search forms using GEO my WP forms builder.

Using the AJAX Forms extension, you can use GEO my WP's forms builder to create AJAX-powered search forms. The AJAX forms are processed and displayed instantly and without reloading the page, providing a smoother user experience for your site.

Checkout the live demo to see how it works.


  • WordPress 4.3+.
  • GEO my WP 3.1+.
  • Posts Locator core extension to create Posts Locator AJAX forms.
  • Members Locator core extension to create Memebrs Locator AJAX forms.
  • Buddypress Groups Locator premium extension ( Required only if you'd like to create BuddyPress Groups Locator AJAX Forms ).
  • WordPress Users Locator premium extension ( required only if you'd like to create WordPress Users Locator AJAX forms ).


AJAX Form is also compatible with the premium extensions listed below:

AJAX Forms Key Features

Creating AJAX Forms is as simple as creating any other forms using GEO my WP forms builder. Create a new AJAX form, set up the different options, and enter the AJAX form shortcode anywhere on the page where you wish to display it.

Most of the AJAX form settings are the same as the settings provided in the "Normal" forms ( Posts Locator, Members Locator... ). In the screenshots below, you can see the different tabs and settings of the AJAX forms.

Additional Key Features

Described below are the settings that are unique to the AJAX form and are not included in the "Normal" forms.

Order-by Filter

Set a default order-by value, or display an order-by drop-down menu in the search results to allow users to order the list of results.

You can set a default order-by value when the page first loads ( Page Load Results tab ), a default value when the form is first submitted ( Form Submission tag ), and generate an order-by drop-down menu to order the results after form submission.

The order-by options are:

  • Posts Locator - distance, post_title, post ID, date created, last modifed, and post type.
  • WordPress Users Locator - distance, user ID, display name, username, user nicename, user email, and user registered.
  • BuddyPress Members Locator - distance, active, newest, popular, online, and alphabetical.
  • BuddyPress Groups Locator - distance, active, newest, popular, and alphabetical.

Load More Button / Pagination

Choose between the standard numeric pagination or a load more button to load more results.

Marker Clusters

Use marker marker clusters to group markers that are on the same exact location or very close by on the map.

AJAX powered Info-window

The details of each location on the map is displayed using the information window ( info-window ). The info-window opens with a click on a map marker, and the data of the info-window generated via AJAX.

  • Choose between standard or popup info-window.
  • Choose between different info-window template files.
  • Choose the information taht displays in the info-windw. Elements like address fields, image, location meta, and more.
License Agreement
All license options are valid for 1 year from the date of purchase, which during this time you will be eligible for support and updates. All prices are billed yearly until canceled.
For more information, visit our FAQ section or ask a pre-sales question.
Extension Details
Version 2.0
Developed by Eyal Fitoussi
Requires WordPress 5.6 or higher
Requires GEO my WP 4.0 or higher
WordPress 5.6 or higher
GEO my WP 4.0 or higher
  • 2.0 - 08/26/23
    • This is a major release that is compatible with GEO my WP v4.0. Please read this post before updating the extension on your site.
  • 1.3.3 - 01/30/21
    • Note: this version requires Gthe EO my WP version 3.7.
    • Enhancement: When using the load more button on page load action and before the Per-page select dropdown is triggered, we will get the per page value from the page_load_results tab of the form. Otherwise, when the per-page drop-down is triggered, we will then use that as the per-page value.
    • Tweak: check if the Per-page filter was triggered and pass the value as true. We will use that for the Load More button on page load actions.
    • Filters: JavaScript actions \'gmw_ajaxfms_search_results_start\' and \'gmw_ajaxfms_search_results_end\'.
    • Tweak: use the functions gmw_info_window_permalink() and gmw_info_window_title() to generate the title in the info-window template files.
    • Tweak: get the group\'s location data in the info-window using location ID instead of group ID.
    • Tweak: use the function gmw_search_results_title() to retrieve the user title in the search results template files.
    • Tweak: add location name and features location DB tables columns to the info-window object.
    • Tweak: use the location ID instead of user ID when retrieving the user location data in the info-window.
    • Tweak: add \'results_count\' and \'total_results\' arguments to the JSON object returned from the AJAX search queries.
    • Tweak: add \"title\" as \"location name\" and \"Featured\" as \"featured_location\" DB table column during the AJAX Forms queries.
    • Tweak: add the location meta and hours of operation functions to the Members Locator search result template files for a case that those fields are enabled for the Members locator extension.
    • Tweak: remove the location_meta and hours of operation form editor settings from the Posts Locator AJAX class and use the settings that are a;ready provided by the core GMW_Form_Editor() class.
  • - 8/28/20
    • Fix: properly validate required fields on form submission.
    • Tweak: set \'gmw_filter_object_type_in_where_clause\' to false by default.
    • Tweak: prevent dynamic form submission when required text or select fields change to empty or to the default value.
  • 1.3.2 - 7/20/20
    • Fix: use gmw_search_results_bp_avatar() instead of gmw_search_results_featured_image() to get the groups image in the grid search results template file.
    • Tweak: use the filter \'gmw_disable_query_clause_between\' to disable the coordinates BETWEEN filter of the search queries.
    • Tweak: move the object_type filter of the search queries from the WHERE to the JOIN clause.
    • Tweak: add GROUP BY clause to the Users Locator search query.
    • WPCS.
  • 1.3.1 - 3/23/20
    • New: Horizontal search form template.
  • - 11/15/19
    • Fix: remove debugging alert message.
  • 1.3 - 11/14/19
    • Fix: Load more button doesn\'t work when results are submitted on a different results page where the search form does not exist.
    • Action: JS action \'gmw_ajaxfms_pre_geocoding\' to execute custom code before address geocoding takes place.
    • Tweak: Check if the current page is the results page which is set in the form editor before enabling the results shortcode.
  • 1.2.1 - 08/22/19
    • Fix: form is not submitted into a results page.
    • Fix: prevent submission when the submit button is pressed and address is set as required and not provided.
    • Enhancement: enable results page submission by default when is set in the form editor. To disable a specific search form from submitting into a results page use the shortcode attribute disable_results_page=\"1\".
  • 1.2 - 08/20/2019
    • Fix: add the function \'gmw_get_search_results_permalink\' to the AJAX forms plugin and load it only if the function does not already exist.
    • Tweak: Add a JS solution for the wider search and all results search links of the Premium Settings extension.
  • 1.1.2 - 08/19/2019
    • New: grid style search results template files for posts, members, groups, and users locator AJAX forms.
    • Fix: gmw main JS file doesn\'t load when only the search form loads on the page.
    • Fix: using the wrong function to validate the excerpt in the form settings page.
    • Fix: add a short delay to the dynamic form submission to allow the suggested result from the address autocomplete to auto-populate in the address field before geocoding takes place.
    • Fix: use wp_reset_postdata() after the posts loop to prevent conflicts with other loops.
    • Fix: Issue with pagination when the page first load.
    • Tweak: when \"Page Load Results\" tab is enabled with the \"Default address\" filter, this address will now display in the address field of the search form on page load.
    • Tweak: add user logged-in status to search query cache.
    • Tweak: modify query clauses to better handle the order-by clause when ordering by distance.
    • Tweak: disable stylesheet if GEO my WP 3.3.1 + is installed. The AJAX Forms main CSS is now included in GEO my WP main stylesheet.
    • Filter: new JS filter \'gmw_ajaxfms_address_field_pre_geocoding\' to modify the address before is it geocoded.
    • Action: new action hook on AJAX form submission.
  • Version 1.1.1 - 01/12/2019
    • Requires GEO my WP version 3.2 or higher.
    • New: \"compact\" search form template file.
    • WPCS.
    • Minor bugs fix.
  • Version 1.1 - 10/24/2018
    • This version requires GEO my WP v3.2 or higher.
    • Fix: set \'paged\' parameter to 1 if the value is missing.
    • Filter: ‘gmw_ajaxfms_form_enable_objects_without_location’ to enable/disable objects without location in the search query.
    • Fix: various issues with server-side geocoder.
    • Fix: a conflict between the location info-window and the user\'s location info-window when both open at the same time.
    • Tweak: allow showing objects without a location in search results.
    • Improvement: Modify the BuddyPress Groups and Members location query. The plugin now modified the BuddyPress queries directly and join the locations table. That is instead of having an extra separate query for locations only. Various bugs fix and improvements.
  • Version 1.0 - 8/4/2018
    • Initial release