0 comments on “My Profile | Notifications”

My Profile | Notifications

The My Profile page is rendered as a React component as of the 2601.XX release. This is invoke using the WordPress blocks system via the JavaScript wp scripts helper in package.json.

Related PHP Classes and Methods

My Profile is managed via the MySLP Dashboard repo (Store-Locator-Plus/myslp-dashboard).
The \MySLP_Customer_Profile class extends SLP_Base_ReactObject.
SLP_Base_ReactObject is the Store Locator Plus class that acts as the helper to wire PHP data to the JavaScript interface using the defined WordPress blocks system. WordPress blocks are , at their core, React components.

SLP_Base_ReactObject JavaScript Variable Population

This is handled via the extendReactVars method, which is usually extended by child classes.
The return PHP array end up populating the slpReact JavaScript variable.

Most of the MySLP (SaaS code) variables will return a sub-array named mySLP.
This results in the JavaScript variable slpReact.mySLP which contains SaaS specific variables.

For example:
$vars[‘mySLP’][‘subscription’] = $this->get_subscription_data();

Related React Components

ProfilePanel in WordPress/wp-content/plugins/myslp-dashboard/src/profile/profile.tsx is the primary wrapper for the entire My Profile page React component.

Notifications are handled by a Snackbar component provided by the @mui/material React framework.
It is driven by the JavaScript variables slpReact.mySLP.subscription.message and slpReact.mySLP.subscription.severity.
If the message element is not empty, the Snackbar opens and the message is displayed.
The severity element defines the style of the Snackbar message interface.

0 comments on “My Profile | Cancel Subscription Not Working”

My Profile | Cancel Subscription Not Working

This is an issue with the updates to the My Profile interface from the 2602.01.01 version of the SLP SaaS platform.

Going to My Profile | Cancel Subscription is no longer working. It appears to post to the backend for processing, but there is not notification of cancellation and there is no update to the status.

The My Profile | Subscription page after clicking “Cancel Subscription”.
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.