Location Search Report Update

location search report

An issue impacting location search report was reported by several users after our SaaS platform update earlier this week. We were able to locate and resolve the underlying issue. A new version was released within 24 hours of the initial report and updated on our SaaS platform in version 2502.25.01 which went live earlier today.

Location search reports are available with the Professional and Enterprise level subscriptions.

Location Search Report Update for WordPress Plugin Users

Users of the legacy WordPress plugins, notably the Power plugin, will also be impacted by this issue and should update their Store Locator Plus® plugin stack. It should be noted that the main Store Locator Plus® plugin will no longer automatically update due to changes with our WordPress.org plugin listing. You will need to go to the WordPress plugin store and download an updated version there. If you do not have a WordPress plugin store account you will need to create one.

Users of the SaaS platform do not need to do anything, the search location report updates are automatically available and activated as part of your SaaS subscription.

Ignore Radius Update

In addition to the location search report update, users that have set the Radius Behavior to Do Not Use under the Search settings had an issue with results not being returned. This issue was also patched in the 2502.25.01 release that went to production on our SaaS platform earlier today.

Users of the Experience plugin will be impacted as well. The same instructions noted above apply to downloading the latest version of Store Locator Plus® from the plugin store. Users of the SaaS platform do not need to do anything; software updates are automatically available and activated as part of your SaaS subscription.

Post Image by Lance Cleveland from Pixabay

Saas Platform Settings and Rank Issue v2502

The Store Locator Plus® SaaS platform was updated yesterday to bring it inline with current security and performance standards. The underlying MySQL database as well as the PHP engine on our SaaS servers were both beyond the actively supported stage and needed to be updated. Products deemed “end of life” and not actively supported do not receive security and performance updates. After reviewing the situation we made the decision to upgrade the technology stack and move to a more stable platform.

Overall the move has been a positive one that not only improves the security of our systems but has shown performance improvements on several metrics.

Unfortunately the changes to both PHP and MySQL forced multiple updates to the Store Locator Plus® codebase. Both PHP and MySQL introduced breaking changes in their major version updates that have happened over the past 7 years. That led to a year of code revisions and testing as we updated our code to work on actively supported PHP and MySQL versions that will give us another decade of updates to both components.

Some of these changes have impacted a few customers that were utilizing the ranking features to sort locations. One of our customers reported that their locator map was not displaying the initial set of locations for their services. The underlying issues and resolution are noted below.

Rank Field Conflict With MySQL 8

The main culprit here is the upgrade to MySQL 8. Servers were upgraded to MySQL 8 as the prior release was no longer supported. Amazon RDS services dropped support for the older MySQL version with standard support going offline in February 2024. As such we were forced to upgrade MySQL; This change was a good thing overall but it involved notable data query and code updates.

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”.