Hooks: app-settings related (layout, content sections, form colors)

Summary

Grouped reference for the scoped app-settings read / write filters. Each follows the same pattern as mam_app_settings_get_setting — one filter per scope. Use these when you need a typed read of a specific settings family rather than the generic key-by-key cascade.


Read filters

Filter Returns Notes
mam_app_settings_get_layout_settings array Home-screen layout configuration
mam_app_settings_get_home_screen_stack array Ordered stack of home-screen sections
mam_app_settings_get_home_screen_categories array Home-screen category list
mam_app_settings_get_content_section_settings array Per-button content-section config
mam_app_settings_get_tab_bar_settings array Tab-bar config (see Hook: mam_app_settings_get_tab_bar_settings)
mam_app_settings_get_tab_bar_buttons array Tab-bar button menu (admin UI source)
mam_app_settings_get_add_item_settings array Add-new-item flow settings
mam_app_settings_get_default_sections array Default content sections per role
mam_app_settings_get_form_colors array Form theme colors

Generic read signature:

$value = apply_filters(
    $filter_name,
    $default,
    string $role
);

Write filters

Filter Mirror of Notes
mam_app_settings_set_layout_settings ..._get_layout_settings
mam_app_settings_set_home_screen_stack ..._get_home_screen_stack
mam_app_settings_set_home_screen_categories ..._get_home_screen_categories
mam_app_settings_set_content_section_settings ..._get_content_section_settings
mam_app_settings_set_tab_bar_settings ..._get_tab_bar_settings
mam_app_settings_set_add_item_settings ..._get_add_item_settings
mam_app_settings_set_form_colors ..._get_form_colors
mam_app_settings_set_button ..._get_buttons per-button write
mam_app_settings_button_order (no read mirror) reorder buttons in an array
mam_app_settings_delete_button (no read mirror) delete a button

Admin UI extension hooks

Hook Type Role
mam_add_settings_to_main Filter Inject settings into the main admin page
mam_add_settings_categories_to_main Filter Inject settings categories
mam_add_settings_to_buttons_settings Filter Per-button-type settings panel injection
mam_app_nav_above_role_dropdown Filter Render content above the admin role dropdown
mam_app_settings_final_content_sections_tabs Filter Last-chance tab-list mutation
mam_for_plugin_settings_section Filter Per-plugin settings section in the admin
mam_publish_additional_settings Filter Inject settings into the Publish admin page

Example: read the layout for the active role

$layout = apply_filters(
    'mam_app_settings_get_layout_settings',
    array(),
    mam_current_request()->user_role()
);

Example: override form colors per role

add_filter( 'mam_app_settings_get_form_colors', function ( $colors, $role ) {

    if ( $role === 'subscriber' ) {
        $colors['primary'] = '#FF5722';
    }

    return $colors;
}, 10, 2 );

Gotchas

  • All hot path. Same caveats as mam_app_settings_get_setting — early-return when not applicable, cache aggressively.
  • Per-scope option keys. Each filter resolves to a different option key; don’t try to construct keys yourself.
  • The cascade is in the data manager. Don’t try to re-implement.
  • Frozen contracts. Many call sites depend on the existing signatures and cascade behavior.

  • Settings cascade overview
  • Per-button and per-role settings
  • Hook: mam_app_settings_get_setting
  • Hook: mam_app_settings_get_buttons
  • Hook: mam_app_settings_get_tab_bar_settings

Metadata

Field Value
Article type Hook Reference
Plugin slug mam-main
Applies to plugin version 2.1.11+
Hook type filter
Audience PHP developer
Frozen contract yes
Last verified 2026-05-02
Contents

    Need Support?

    Can’t find the answer you’re looking for? Don’t worry we’re here to help!