Gray map or blank map and/or search does not work

JavaScript Problems:

Note: Major Updates to WordPress versions (example 5.0 , 5.5 ,5.7) may effect themes behaviors and plug-ins and cause additional errors. We strongly advise updating on a staging site or dev or  test site first instead of allowing AUTO UPDATES)

Many times we hear that an update to SLP plug-in  broke “everything”.  Upon asking  for clarification  we find out that they also updated WP and/or  other plugins or did not update their themes.   WordPress explains how to  use your browser to diagnose javascript error

Issues with the JavaScript part of the plugin usually manifest themselves by showing the search form but either a blank map, a map that is all gray, or a map that appears but search does not wor properly. To identify what is causing your issue use the Firebug add-on with Firefox or any Browser developer tools (see above info in the link to WordPress on how to diagnose with browser).

The WordPress Store Locator Plus map rendering is managed by the slp.js JavaScript file.  It sets up the communication with the built-in WordPress AJAX handler, admin-ajax.   Your server must be setup to allow the built-in WordPress AJAX handler to execute.  Additionally, ANY PLUGIN or THEME that is breaking javascript will break SLP functionality. This is rarely an issue with the SLP plugin.

Common errors or issues:

The PHP JavaScript connector did not load

We have come across this error on several installations. The short answer to this problem is that something in the WordPress installation prevented the Store Locator Plus JavaScript component from loading. This means that the map system cannot communicate with Google. This prevents the map from appearing and search results from working properly on your locations page.

Here are some issues we’ve come across that cause this to happen:

    • PHP version is < 5.3, this generates an error message that you will not see in the browser. Any error message will prevent the JavaScript PHP file from loading. SLP will not work with versions lower then PHP 5.3.
    • PHP Error Reporting Enabled, if PHP error reporting is enabled and ANY PLUGIN has bugs, uses deprecated WordPress functions, or uses deprecated PHP functions they will generate an error message. This error message can be hidden in the browser if the error happens in something that is creating page header information. This will also break the page loading process and prevent the JavaScript PHP from loading.
    • Plugin Errors, any plugin that does not load properly and does ANYTHING with page header output will break and thus cause a domino effect prevent the Store Locator Plus PHP JavaScript component from loading.

In many cases the cause of the maps not loading is because our PHP JavaScript file could not load. We can often detect this and pop-up the “PHP JavaScript connector did not load” warning. However we cannot catch all errors. Why good Javascript is critical.

One of the best tools for searching for errors in the HTML page headers is to use Firefox with the Firebug plugin or any browser developer tool. Turn on the console and check the responses tab under console for any errors. We have resolved many client installation and map problems with this plugin. More often than not we are finding errors in other plugins, themes, or server/site  configuration settings.

The PHP JavaScript page header is a critical part of a working Store Locator Plus installation. Since it loads very late in the page creation process it is susceptible to failures from almost anything else you may be loading on the page or your WordPress site. The the map is not loading and you are receiving this message get some page debugging/tracking tools like Firebug and isolate any plugins that are generating coding/output errors.

IF YOU Update your WordPress environment , BE SURE TO  review  the WordPress VERSION changes  as they have changed.

Review the WordPress suggested requirements

  • Update PhP to 7 or higher
  • Update MySQL to 5.6 or higher
  • Site move to HTTPS 

2017 was  the year  WordPress was requiring   hosts to have HTTPS available. Just as JavaScript is a  necessity for smoother user experiences ,  updated PHP versions are critical for performance,  and SSL just makes sense as the next hurdle  users are going to face.   Note: Google also weighs SSL as a search engine ranking factor and have begun flagging unencrypted sites in Chrome.

Search and results not loading

AJAX Blocked

It is common for web hosts and system administrators to disable the built-in WordPress AJAX processing.   Store Locator Plus requires AJAX to be enabled.   This typically manifests itself with the AJAX call to the admin-ajax.php script not executing.

You can test this by directly surfing to the admin-ajax script on your server with a URL similar to this:

/wp-admin/admin-ajax.php?action=csl_ajax_onload&addressInput=&ignore_radius=1

This should return a JSON response showing curly braces that start with {“success”:true,…

If it comes back with nothing, or a warning/error about being blocked, your AJAX security is not set properly.  Check you web server log files and talk to your system admin for assistance on configuring access to WordPress AJAX scripts.

Q. I paid for email support what happens next?

A.   For an  email support order:

  • If you pay and order support on Monday morning before 9 A.M EST , someone in customer support will answer you on, or before Wednesday no later than Thursday of the same week.  If you want to speed things up,  you may follow up with  an email to support letting them know you have submitted an order for support and provide your Plugin environmnet information and a brief explanation of your issue.
  • If you order and Pay for support on a Friday, realize that we are on the east coast.   If the support request comes in at 4 PM EST (which is 1PM Pacific time), do not count that Fri,Sat/Sun. The clock would start ticking Monday for a 3 Biz day email query and an acknowledgement of your paid support or a reply , if you have already provided the info concerning your issue, a reply would be forthcoming on or before Wed the following week.

Featuring Locations – Top of Results and Highlighting

Store Locator Plus allows you to feature specific locations in your search results.   This requires the Experience add on  (or Premier ) for WordPress or a Professional or Enterprise account for My Store Locator Plus.    Some of the interface styles provided by the style gallery support featured location highlighting “out of the box”, such as the Default With Font Tweaks style.

Select A Style That Supports Featured Locations

The Default With Font Tweaks Style is one of the styles that highlights locations and is a good starting point for testing this functionality.  You can adjust the layout and styling afterwards to meet your specific design requirements.

WPSLP – Select the Store Locator Plus entry in the side menu.

MYSLP – Select Store Locator Plus in the side menu.

Go to the Settings Tab and select the View subtab.

Click on the activate button on Default With Font Tweaks in the style gallery.

Settings/View for styles

The [slp_search_element] Shortcode

The [slp_search_element] shortcode is only processed within the Search Layout setting.   It is used to display user input elements on the search form.

Attributes

Attributes are the keywords that appear after the opening [slp_search_element and before the closing ].

Default attributes include:

button=<slug>

Output a form button.  <slug> should be an input supported by the base plugin or an add on such as:

submit

Output the Find Locations button.

[slp_search_element button="submit"]

 

dropdown_with_label=<slug>

Output a dropdown selector with a preceding label for the specified input.  <slug> should be an input supported by the base plugin or an add on such as:

radius

Output a dropdown of radius selections based on the Experience / Search / Radii Options setting.

hard_coded_value=<value>

Outputs the specified value.  Used by some add ons to add a specific [slp_search_element] output.

input_with_label=<slug>

Output a input selector with a preceding label for the specified input.  <slug> should be an input supported by the base plugin or an add on such as:

address

Output a the address/zip-code input box.

Tech Geek Stuff

Processed by the SLP_UI class via add_shortcode in create string_SearchForm() which calls crease_SearchElement().

Filter shortcode_slp_searchelement is used to manipulate attributes.  Many add ons use this to render specific output using attribute ‘hard_coded_value’ => ‘xyz’ to output a specific value.

Locator Data – The Field Names

Store Locator Plus includes a default set of data fields that is included with every installation as well as extended fields provided by add-on packs.

For  data fields, including those added with the Power add-on, you can output the data in the map info bubble or results layout,  by using the following shortcode:

[slp_location data.<field_slug>]

For example:

[slp_location data.contact]

[slp_location data.facebook_custom_url] (for someone that added a field named Facebook Custom URL).

Both the default data and extended data can be displayed in the search results, (for SEO Pages some fields will be [storepage field=contact] for SEO-friendly details pages. Most of the tools provided by the various add-on packs work best when using the field slug. The slug is a unique name for the field that is similar-to, but not exactly the same as, the field name.

The slugs are used in the add-on packs such as the layout strings from the Experience Add On in as well as the column headers for CSV Import in the Power Add On.

Default Location Fields

ID

Slug: id
Data field: sl_id
Type: integer (auto-assigned)

Name

Slug: store
Data field: sl_store
Type: string up to 255 characters

Address

Slug: address
Data field: sl_address
Type: string up to 255 characters

Address Line 2

Slug: address2
Data field: sl_address2
Type: string up to 255 characters

City

Slug: city
Data field: sl_city
Type: string up to 255 characters

State

Slug: state
Data field: sl_state
Type: string up to 255 characters

Zip

Slug: zip
Data field: sl_zip
Type: string up to 255 characters

Country

Slug: country
Data field: sl_country
Type: string up to 255 characters

Latitude

Slug: latitude
Data field: sl_latitude
Type: string up to 255 characters

Longitude

Slug: longitude
Data field: sl_longitude
Type: string up to 255 characters

Tags

Slug: tags
Data field: sl_tags
Type: Text up to 4096 characters

The Pro Pack tags field. Requires Pro Pack for full functionality.

Description

Slug: description
Data field: sl_description
Type: Long text, as determined by your MySQL settings.  More than 4096 characters.

Email

Slug: email
Data field: sl_email
Type: string up to 255 characters

Website

Slug: url
Data field: sl_url
Type: string up to 255 characters

Hours

Slug: hours
Data field: sl_hours
Type: string up to 255 characters

Phone

Slug: phone
Data field: sl_phone
Type: string up to 255 characters

Fax

Slug: fax
Data field: sl_fax
Type: string up to 255 characters

Image

Slug: image
Data field: sl_image
Type: string up to 255 characters

An fully qualified image URL, http:: with a full domain.

Private

Slug: private
Data field: sl_private
Type: A single character string.

May be used in the future as a 1|0 value to determine if a location is to only appear on the admin interface and not front end searches.

Neat Title

Slug: neat_title
Data field: sl_neat_title
Type: string up to 255 characters

May be used in the future as an alternate store name or subtitle.

Linked Post ID

Slug: linked_postid
Data field: sl_linked_postid
Type: integer, auto-assigned

The ID of the related store_page entry where extra taxonomy data and other location data is stored. Used with Store Pages and Tagalong. Should not be modified.

Pages URL

Slug: pages_url
Data field: sl_pages_url
Type: string up to 255 characters

The relative URL for the Store Pages linked post ID. Provides a processing shortcut for the Store Pages add-on pack.

Pages On

Slug: pages_on
Data field: sl_pages_on
Type: a single 1|0 character

Used with Store Pages to determine which locations have been populated with Store Pages template content.

Option Value

Slug: option_value
Data field: sl_option_value
Type: text up to 4096 characters

A serialized JSON data object which can store extra location data. Slower and less direct than extended data fields.

Last Updated

Slug: lastupdated
Data field: sl_lastupdated
Type: timestamp

A date and time MySQL timestamp indicating the last time the main data for the location was updated.

Initial Distance

Slug: initial_distance
Data field: sl_initial_distance
Type: A float.

The initial distance calculated between your center map latitude/longitude and the location.

Add On Pack Import Fields

These fields appear in the extended data table, slp_extendo. The field metadata, used to manage the slp_extendo table, is store din the slp_extendo_meta table.

Power Add On : Contacts Enabled

Identifier a unique location identifier from an external database that can be used to update existing locations in Store Locator Plus

Contact

First Name

Last Name

Title

Department

Training

Facility Type

Office Phone

Mobile Phone

Contact Fax

Contact Email

Office Hours – long formatted text

Contact Address – long formatted text

Notes – long formatted text

Featured – valid values are “1” for featured and “0” (zero).

Rank – an integer from 1 (highest rank/top of list) to 999999. 0 = no rank.

Power Add On : Categories Data

Power categories utilize the built-in WordPress custom taxonomy system. Standard WordPress category IDs are kept in the term_relationships and term_taxonomy tables. The relationship between locations and categories is managed via the slp_tagalong table that maps the Store Locator Plus id field to the WordPress Taxonomy term_id.

Table: slp_tagalong
field: sl_id = the store id
field: term_id = the WordPress taxonomy id

Q. What is the difference between a shortcode and locator layout settings?

A.    A shortcode is a WordPress-specific code that lets you do nifty things with very little effort.  Shortcodes can embed files or create objects that would normally require lots of complicated, ugly code in just one line.   In other words, a Shortcode = shortcut.

Schedule For Initial Distance

The Premier Add On allows you to set a scheduled interval using the built-in WordPress Cron scheduler to calculate the initial distance for locations where the distance is zero.

The initial distance setting is used by Store Locator Plus to boost performance when loading the initial map.  It uses and SQL index on a numeric value to select a subset of data versus calculating values for potentially thousands of locations and then filtering based on the calculation.  For sites with more than 1,000 locations this feature significantly boosts initial map loading performance.

Google Map Icons

All those little location markers on the map that Google just made FAR more prevalent in their latest update?  Those are what they call map icons.   They are also clickable which means all those locations will pop up a map bubble even if they are not YOUR Locations for your business.  Premier Add On  v 4.7.1 or higher for Store Locator Plus or MySLP/Enterprise lets you disable the “clickability” on the map icons.