The Store Locator Plus® (SLP) application includes a series of scrolls that govern how the Store Pages feature manifests in both the MySLP SaaS platform and the WordPress plugin builds. The following sections summarize the core scrolls discovered in our recent analysis.


Store Pages Menu Invocation

Key Store Pages Menu Invocation points include:

  • Primary Renderer: SLP_Power_Pages_Admin::render_pages_tab tied to the slp_menu_items filter .
  • Requirements Checklist:
    • SmartOptions::is_true(‘use_pages’) must evaluate true.
    • The Power add-on must be set to “using pages.”
    • Global objects must be initialized after slp_init.
    • The filter slp_menu_items must be present with a valid callable.

Failure cases include disabled options, uninstantiated globals, mismatched slugs, or invalid callables. Any of these will prevent the submenu from rendering .


Store Pages Menu UX (MySLP Refinement)

The Store_Pages_Menu_UX applies specifically to the MySLP SaaS platform.

Enhancements include:

  • SaaS-Only Guard: UX refinements apply only when MYSLP_VERSION is defined .
  • Menu Injection: The Pages menu is injected with:
    • Slug: slp-pages
    • Label: Pages
    • Renderer: SLP_Power_Pages_Admin::render_pages_tab
  • SaaS UX Adjustments:
    • Icon set to dashicons-admin-page.
    • Position adjusted to ~1.17, ensuring Pages appears logically between Categories and Options.
  • Checklists Enforced: Pages must be active, globals must be instantiated, and the callable must resolve correctly.

Failure cases include non-SaaS environments (fallback to WordPress plugin defaults), disabled Pages, or invalid callable injection .

This UX refinement ensures MySLP maintains consistent brand alignment and a polished admin experience, while the WordPress plugins remain unchanged.


Store Pages Menu (Core Chain)

Store_Pages_Menu defines the core attachment points for Store Pages within the WordPress plugins.

Highlights include:

  • Hooks & Filters:
    • SLP_Power_Pages_Global::add_pages_tab attaches to slp_menu_items.
    • slp_menu_items is fired by SLP_Admin_UI::create_admin_menu.
  • Lifecycle:
    • Instantiated via SLP_Power_Pages_Global::do_when_slp_ready().
    • Registered in SLP_Power_Pages::add_hooks_and_filters().
    • Triggered during slp_init_complete by SLP_Actions::init.
  • Execution Trace: From do_action(‘slp_init_complete’) → add_hooks_and_filters → apply_filters(‘slp_menu_items’) .

Analysis shows the submenu chain (ΔMenuHookChain) is reliable when globals are instantiated. Patches were applied to ensure SLPPower::run_during_init() explicitly calls ::get_instance() to prevent skipped initialization paths .


Conclusion

  • Invocation ensures the submenu is only present when conditions are met.
  • UX refinements polish the MySLP SaaS platform experience with branding and placement consistency.
  • Core Chain guarantees proper hook registration and submenu rendering within the WordPress plugin builds.

Together, these scrolls maintain stability, enforce trustlines, and safeguard the admin experience across both SaaS and plugin environments.