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.

What To Buy: Filter By Brand

Question

We need to filter our locations by brand.  Does your plugin or an extension to your plugin have this feature?

Assigning Brands To Locations

Power add-on for WPSLP (DIY)  or the Professional level plan (or higher) for MySLP is the right choice for doing that.  Either  allows for simple categories or  parent/child relationships between categories. Locations can be assigned to one or more categories. Your users can then search for locations based on those categories.

For more complex hierarchical functionality , button barshorizontal check-boxes for categories and more customized approaches you might want to check out our WPSLP Premier subscription or the MySLP Enterprise level subscription

Add a category for each brand you offer and your users will be able to filter locations showing only those that offer specific brands.

Import remote file retrieval

Power Add-on for WPSLP or the Professional level or higher for MySLP   allows the administrator to schedule your Import process from a remote file retrieval (must be accessible public) to provide more control over recurring imports from a full url where you CSV file resides and allows flexibility for scheduling the time for daily imports.

WordPress CRON is not exact, it executes the next time a visitor comes to your site.

WordPress times are UTC/GMT time NOT local time. Set to none and leave the URL blank to clear the CRON job. Example: 14:25. (Default: empty = do not run daily cron)

Checking your server, PHP and MySQL to ensure the character set is correct will go a long way toward importing special characters like registration characters.

Additional Import Data field headers

If you have the Power add-on  for the Self managed WPSLP or if you have the Professional Level MySLP SaaS plan, you will have the ability to import data fields via a properly formatted csv file.  All columns MUST have a header row with  the correct  field name.   All fields are short text fields, up to 255 characters, unless otherwise noted.  The header text is NOT case sensitive.

If you are using the category  functionality of Power you may want to import and assign a category slug on the fly.  The header field name is:

category (or plural categories).

If you wish to import and assign more than one category  per location , you will need to use a comma-separated list for the data field  (category).  Example: My location has more than one category associated with it, I want to indicate it is a hotel,restaurant, and has music.  Category  for that location would show under the column with the header row “category”…. hotel,restaurant,music

Alternatively, to define parent/child relationships , i.e.  hierarchical categories , use a double colon as the separator Example the Parent is Facility, the child is showroom.

Facility::Showroom.