Locator Updates for Spring 2025

The Store Locator Plus® SaaS and WordPress plugins have been updated to lay the foundation for rapid updates over the next few months. Before we could begin our “quick sprint” series of updates to patch minor bugs and release smaller feature updates at a faster pace we needed to fix the “foundation” of Store Locator Plus®.

Some of the updates in this release include the stability of retaining locator settings, a new settings history feature for our SaaS clients, the removal of the “quick save” feature, and addressing a half dozen PHP warnings or errors for our WordPress plugin users.

Read more: Locator Updates for Spring 2025

Locator Settings Stability

The updates to the WordPress core engine since the 6.X release changed the order in which various pieces of the Store Locator Plus® code was running. Some of the changes were related to how WordPress language management worked via their load text domain calls. This functionality is related to the multilingual, or polyglot, capabilities in WordPress — and thus also the Store Locator Plus® system. Since WordPress 6, multiple warnings were being generated as a previously undocumented “feature” of WordPress would force the text translation code to be called earlier than instructed. This automatically-triggered, and unexpected, loading of the text translation module meant that Store Locator Plus® code was bringing various settings modules “online” earlier than anticipated.

This had the effect of prematurely loading various settings modules and triggered a series of “what is this setting? — ok, let’s set it to a default value” events in our code. That led to a string of complex inter-related events that appeared to our users as “hey, whenever the main Store Locator Plus® plugin is updated to a new major version some of our settings get reset”. This issue has been resolved.

But My Settings Didn’t Always Reset…

That is what made tracking down this issue so difficult. The problem was not easy to reproduce. We spent much of the past two months tracking down specific settings that were being reset to their default value, fixing bugs or timing issues with those settings only to find out other settings would then be reset.

It turns out that a very specific string of events has to occur, and it does not impact all users every time. The main trigger is the core of the code, the Store Locator Plus® base plugin had to be upgraded to a new version. In addition users of the SaaS had to be a Professional or Enterprise level user — or WordPress plugin users had to have Power, Experience, or Premier installed and active. In addition, at least one setting from those advanced features had to be changed from their default at some point in the past.

Settings that contained text values, such as labels, were especially vulnerable to being reset.

Settings Issue Resolved

After extensive testing during the past couple of weeks of the 2505.08 version of our SaaS platform as well as the standalone WordPress plugins, we believe this issue has been resolved. The resolution involved splitting apart several functions that setup the Store Locator Plus® environment and having those new functions connect to different points in the WordPress platform startup sequence.

These updates have stabilized the settings issues and should prevent these seemingly random resets from happening for both our plugin and our SaaS users during future platform updates.

Settings History

A new feature we are developing for the SaaS platform has been started as part of our settings reset research and investigation. A new menu entry “Settings History” is now available to all users. With the 2505.08 release on the SaaS platform, this is a simple read-only report of what settings have been changed and when. This is intended to provide a way to see what settings may have been changed, whether automatically triggered or specifically set by the administrator for your account. If your locator interface is not looking or behaving as you expect, this should provide a way to see what was changed so you can put it back to the prior settings.

Setting history noting a change we made from having the map centered in United States to Charleston SC

In the future this will evolve to provide an interface option to restore specific settings or even rewind your settings back to a specific point in time. This interface will also provide the foundation to allow for your account to store and save multiple setting configurations that can be deployed on your site with different embed codes. That makes it possible to have one set of locations that can drive several very different presentations of the location map and listings for directories. For example, you can have a settings group named “The Southeast” and another named “New England” each with a corresponding “center map at” location as well as a different default radius for each. Running a global company and want to use km for locations in Europe to miles for locations in the US? In the future you’ll be able to generate a different embed code for each using the “render map with the Europe settings” version for one and the “render with US settings” for another.

“Quick Save” Removed

The “quick save” settings feature has been removed. In the past some settings that had a dark red label would “quick save”, a feature popular six-plus years ago that would automatically implement a setting as soon as you changed it on the user interface — no need to press the save button on the settings page. This feature is now gone as it was not implemented across all settings, thus making for a confusing “click save for these settings, but not these” user experience. Now nothing is saved or updated after you change a setting unless you intentionally click the Save button on the settings page.

Other PHP Specific Updates

The following updates primarily impact our WordPress plugin users that are running different versions of PHP, MySQL and other baseline technologies for their installations. Our SaaS platform is built on stable standardized versions of PHP and MySQL in addition to having the PHP configuration files on the platform tailored to meet the latest best practices for that platform. Non-standard PHP configurations, outdated versions of PHP, or bleeding edge releases of PHP can cause a number of issues that manifest in error messages appearing on a website when installing Store Locator Plus®. Some of those messages can cause a fatal error, shutting down an entire site due to how PHP and WordPress handle the severity of different errors.

Errors that appear for PHP 8.X releases that were brought to our attention have been resolved including:

  • Call to update_wp_option() on null
  • _load_textdomain_just_in_time() warnings
  • DSRA null reference error

Post Image by Lance Cleveland from Pixabay

Fall 2023 Locator Updates

We have been busy catching up on some much-needed maintenance updates to the Store Locator Plus® family of plugins. While our SaaS service has been running smoothly, there have been several issues that needed to be addressed with the WordPress plugin versions. Some of the issues are related to changes in WordPress core with breaking changes — things they changed that no longer work the way they used to. Other issues, which have come up more recently are due to breaking changes in MySQL — specifically MySQL version 8 and higher.

Large File Imports : November Fall 2023 Locator Updates

Users of the Power add on that were importing large location files would run into issues if they were also using PHP 8.2 or higher. Large files are handed off to a background processor (cron jobs in Linux-speak) for WordPress to prevent browser time out and connection issues. Since larger files often take more than the 300 seconds most PHP servers configurations allow, Store Locator Plus® first uploads the file to the media library (usually takes less than 300 seconds even for large files) , the reads that file in chunks via an asynchronous cron process to ensure the entire file is processed even when the server says “you used up too much of your allowed time, we are shutting you off”.

Store Locator Plus® implemented this “chunk processing” years ago (2018 maybe?). After uploading a CSV file, Store Locator Plus® starts a timer in the background that runs every minute asking “did my file import finish?”. To do so, it keeps track of the import progress via meta tags associated with the media file stored in WordPress. These meta tags including things like how many lines were read, how many were processed, and other metrics that this timer can look at to determine if the entire file was processed. If not, it starts processing more of the file from where it left off. When it finishes the timer is deleted so the app does not keep taking up system resources.

Unfortunately a code patch in the 2310.XX updates disabled this cron process, which stopped all large files from importing. This has been resolved.

MySQL 8 Changes

Last month we updated the Store Locator Plus® WordPress versions to support MySQL 8 and higher. Turns out MySQL (not MariaDB, the open source and free counterpart many hosting services use — MariaDB still works as expected) decided to allocate the word “RANK” for their own internal use. This new “reserved word” happens to match a field name we have been using one of our add-ons for years. Now that field name breaks things for users running the “bona fide” Oracle version of MySQL 8 or higher. Thankfully there is a simple workaround which has been patched in the October Fall 2023 Locator Update.

Unfortunately, anyone that manually upgraded their MySQL version from pre-8 to 8+ probably broke things on their Store Locator Plus® installs; Especially if they decided to activate the location ranking feature after doing so. While generally a good idea to review things like breaking changes BEFORE upgrading a database engine, life it hectic and often the “upgrading is better, get it done” path takes precedence in these situations.

For users that upgraded the database and had an existing Store Locator Plus® installation, the data structures and related functionality for ranking will remain intact and work fine if all our plugins have been updated to 2310.XX or higher. If ranking was enabled AFTER the database was upgraded you may need to remove the wp_slp_extendo and wp_slp_extendo_meta tables, then re-install and re-activate the Experience add-on (you may also need to reset the WordPress meta that marks the current installed version of this plugin).

Anyone installing on a NEW installation of WordPress with Store Locator Plus® add ons for ranking locations likely ran into an issue before our 2310.XX version of the plugin. The best path forward here is to deactivate the Store Locator Plus® plugins, manually remove the related data tables (wp_slp_extendo, wp_slp_extendo_meta, wp_store_locator), and the entries from the wp_options table for SLP related settings (option_name like ‘%slp%’) to clear out any “cruft” before re-installing and re-activating the SLP plugins.

Fall 2023 Random Locator Updates

We’ve also been doing some clean up now that PHP 8 is in play on most servers. PHP 8 is far less forgiving, and yes, they too added breaking changes where the latest version no longer plays nice with code that worked perfectly fine in earlier versions. Multiple PHP 8 warnings have been cleaned up in the past month, though none will break the app it does create extra log entries on the server so it is always nice to clean those up.

Items we addressed include:

  • Fatal Errors : code will stop running
    • SLP_Power_Cron::$addon access level
      The Power add on visibility of the $addon variable was set to the lower-level private access when the base class it extended requires protected or higher visibility.

      Declaration added in 2023.10 per IDE recommendation that dynamically scoped variables are not longer allowed in PHP 8.2 with incorrect private $addon; property declaration on the class. The proper fix was to remove the phpDoc comment block hints that declared a hint for the property, indicating it was private to this class (phpDoc or IDE doc rules processing bug).
  • Warnings : code will run
    • version_compare() – null parameter not allowed
      Happens when a prior version was not installed (null) , which PHP 7 evaluated as “nothing” and version_compare() would return “this version is not newer”. It still does that but explicitly wants a value instead of null to compare against (we set the installed version to match the current version, which returns “this version is not newer”.

Address Autocomplete Updated : SLP 2209.06

world map illustration

Address autocomplete is a feature available on the Store Locator Plus® Professional and Enterprise plans.   This feature connects the location address search to your list of locations to suggest a list of matching zip or postal codes.   This feature helps guide your site visitors toward selecting a zip or postal code where you have an existing location.

address autocomplete
The address autocomplete feature will suggest zip codes to your visitors.