0 comments on “Foreach loop null attributes in SLP_UI_Shortcode_slp_option.php”

Foreach loop null attributes in SLP_UI_Shortcode_slp_option.php

When testing generate embed for “Freshy” the JS dev tools throws a warning:

[Log] (location.js, line 190)
Warning: foreach() argument must be of type array|object, null given in /var/www/html/wp-content/mu-plugins/store-locator-plus/include/module/ui/SLP_UI_Shortcode_slp_option.php on line 94

As per Foreach loop in SLP_UI_Shortcode_slp_option.php#69

0 comments on “QC Site Cannot Render Staging Embeds”

QC Site Cannot Render Staging Embeds

For some reason embed scripts from the staging test site do not work on QC such as the QC Ice Cream test page. The embeds work on other sites including local Docker developer test rigs, the LanceCleveland.com blog site, and

This issue appears to have been temporary, and may be cause by a Web Application Firewall (WAF) on AWS blocking requests due to too many requests.

The issue is that any staging.storelocatorplus.com URL was coming back as a 404 but only when the request was made from the qc.storelocatorplus.com domain.

We need to keep an eye on this issue.

0 comments on “Accounts With Special Characters Cannot Login”

Accounts With Special Characters Cannot Login

Related to SLP Project issue: Cullgroup fatal error viewing dashboard (or logging in)#66

System log error.

[Tue Jan 20 16:44:46.077513 2026] [core:error] [pid 59] [client 127.0.0.1:47176] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use ‘LimitInternalRecursion’ to increase the limit if necessary. Use ‘LogLevel debug’ to get a backtrace.

0 comments on “Map Views”

Map Views


AI Summary

Here’s what “map view” (a.k.a. Map Views / mapview_count) covers on internal.storelocatorplus.com, plus where it shows up in the SaaS code paths you’re working with.

What “Map Views” means in MySLP

  • Map Views = $myslp->User->mapview_count, stored as user meta under the key mapview_count and exposed via the \MySLP_User magic getter/setter.    
  • It’s treated as a subscription/billing usage counter (separate from geocoding usage and referer tracking).    

How map views are counted (increment)

  • The docs state map views are incremented whenever \MySLP_REST_API::get_map_options() is called — “theoretically/assumed to be whenever the map is rendered.”
    • Practically: anything that triggers the “map options” REST call is part of the map-view counting surface area (including unexpected extra calls).
    • \MySLP_REST_API::get_map_options() is only called via the REST API endpoint:
      myslp/v2/locations-map
      • This REST endpoint lives in the rest_path JavaScript encoded variable.
        This fires from:
        • SLP style/LocatorPreview.js script
        • MySLP front-end/location.js
          • Where this is called via jQuery.ajax GET with properties…
            • url: … + rest_path (myslp/v2/locations-map)
            • data.action: get_myslp_data
            • data._jsonp: ‘initMySLP’

When map views reset

Map views reset to 0 via \myslp_extend_plan() (in the myslp-dashboard-helpers module), and internal docs list these callers:    

  • \MySLP_Dashboard_Controller::check_subscription() (when a subscription was expired and is renewed automatically)
  • \MySLP_Recurring_Payments::initialize() PayPal-only path → get_paypal_checkout_details() → myslp_extend_plan()
  • Profile update hooks (personal_options_update / edit_user_profile_update) via \MySLP_Customer_Maintenance::update_myslp_profile_management()

Where “map views” appear in user-facing subscription messaging

  • In plan-change logging/messaging: when a subscription changes, the message explicitly calls out map view limits and overage billing (“Each map view over this limit is billed at $X per N views.”). This is in the SaaS logging code you shared (log_subscription_changed()), and it references MySLP_User::VIEW_OVERAGE_PRICE and MySLP_User::VIEW_OVERAGE_BLOCKSIZE.
  • In renewal/extension logging: the History Logger includes “Prior month map views: %d” when extending a plan (if mapview_count is present). (That’s in the plugin code shown in your editor.)

Related “don’t confuse these with map views” items

  • Referer logging is not “map views.” Internal docs tie referer tracking to geocoding validation (slp_rest_geocode_invalid_referer) and note it’s called during geocoding requests, not every map render.
    • So: map views ≈ map options endpoint calls; referer tracking ≈ geocode request path.
  • Referer tracking is stored in myslp->User->referer_urls
    • Extended via \MySLP_User::log_referer
      • Called via hook firing on slp_rest_geocode_invalid_referer via \MySLP::log_and_validate_referer
    • This is stored in the blog_option ‘user_subscription_status’

Operational/performance note: map renders can trigger multiple REST option reads

  • There’s an internal debugging write-up about excess option lookups during a “single map render,” discovered around SLP 5.13.8—specifically repeated lookups of option values (like label_directions). That’s relevant because map view counting is tied to a REST “options” call, and repeated calls can inflate usage and load if not controlled.  
  • A separate internal post shows how map-related REST responses can differ (e.g., inline styles returned in the “locations-map” call), reinforcing that map rendering often involves REST payloads that can change between environments.  
0 comments on “Power Not Found Error (SaaS)”

Power Not Found Error (SaaS)

Fatal error: Uncaught Error: Class “SLPPower” not found in
/var/www/html/wp-content/mu-plugins/store-locator-plus/include/module/actions/SLP_Actions.php
on line 184

This is happening due to the new invocation of Store Pages being loaded into the main plugin. Not all users will have the Power add on available.

Resolution

Make sure Power add on is active before loading attributes.

In \SLP_Actions::setup_location_post_type

        if ( class_exists( 'SLPPower' ) ) {
            $power = SLPPower::get_instance();
            $rewrite_rules = [
                'slug' => $power->options['permalink_starts_with'],
                'with_front' => $this->slplus->is_CheckTrue( $power->options['prepend_permalink_blog'] ),
            ];
        } else {
            $rewrite_rules = [
                'slug' => SLPlus::locationPostURL,
                'with_front' => true,
            ];
        }
0 comments on “Power : Store Pages Not Working”

Power : Store Pages Not Working

Store Pages interfaces are not invoked.

Reproduction

Requires Power add on to be active.

  • Login as admin on WordPress (WP) site.
  • Go to Store Locator Plus® | Options
  • Enable Pages
  • Go to Store Locator Plus® | Locations
  • Choose Pages, Create from the bulk actions drop down menu
  • Click “to All” next to that menu

Issues

  • There is no “Pages” list in the sidebar
  • Each location shows a page attached, but if you scroll over to the Pages URL column on the location list page, view or edit does not work.
  • Edit brings up this error:
    Sorry, you are not allowed to edit posts in this post type.
0 comments on “Premier UI Shortcode processing Critical Error”

Premier UI Shortcode processing Critical Error

To view in Front end :

changed Style in WPSLP in QC and refreshed

SLP plug-in Version 2511.08.05  with current v  2511.06.02 add-on, (Exp and Premier enabled)

Visit site and critical error from WordPress pops up. Error log credentials library

With Chrome error message (index) Content unavailable . Resource was not cached.

From the QC Apache Error Log

 Uncaught ArgumentCountError: Too few arguments to function
 SLP_UI_Shortcode_slp_option::modify(), 
0 passed in /bitnami/wordpress/wp-content/plugins/slp-premier/include/module/ui/SLP_Premier_UI.php on line 114 
and exactly 1 expected in 
/bitnami/wordpress/wp-content/plugins/store-locator-plus/include/module/ui/SLP_UI_Shortcode_slp_option.php:16

Resolution

Revise \SLP_Premier_UI::process_hook_ShortcodeSLPOption to ensure it both accepts the attributes parameter and sends it along to \SLP_UI_Shortcode_slp_option::modify

0 comments on “Power : $slplus is null in UI handler”

Power : $slplus is null in UI handler

SLP should not allow the older version of Power (2511.06.01 or earlier) to run.

Got error 'PHP message: PHP Fatal error:  
Uncaught Error: Call to a member function addon() on null 
in /bitnami/wordpress/wp-content/plugins/slp-power/include/module/ui/SLP_Power_UI.php:41

From..

		global $slplus;
		$this->addon = $slplus->addon( 'power' );

Resolution

Must use Power 2511.06.02 with the latest version of SLP.

SLP had to be updated to test for the minimum version of the Power add on at 2511.06.02 or higher.

0 comments on “Saving Custom Map Markers”

Saving Custom Map Markers

When editing a location with custom map markers available, the custom marker is not saved.

Steps To Reproduce

  1. Make sure the Experience add on is active.
  2. Edit an existing location.
  3. Change the map marker via the map marker selector, a built-in marker is fine.
  4. Save the location.

The map marker is not changed or saved to the database.

Resolution

Have \SLP_Admin_Locations_Actions::save_edited_location to call \SLP_Data_Extension::set_cols(true) after reading the pre-existing record in order to force the valid extended data fields to the full array.

0 comments on “Edit Location : “Could not update the location data””

Edit Location : “Could not update the location data”

This error happens in a few scenarios:

Experience : changing the map marker
Power : Checking of a category

Reproduction

  1. Activate Power add on
  2. Add a category “A”
  3. Add / Edit a location
  4. Check (or uncheck) the category
  5. Save

Error notification pops up “Could not update the location data.”

Also if…

  1. Activate Experience
  2. Edit Location
  3. Select a different map marker
  4. Save