Skip to content

[Simple Analytics] Add Analytics Admin Page, Navigation & Controls #197

Description

@iamdharmesh

Description

Add a new "Analytics" submenu page under Mailchimp with page, CSS, JS scaffolding, date range selector (presets + custom date selection), list filter dropdown, and a deep link to Mailchimp analytics.

Technical Context:

  • Admin menus registered in Mailchimp_Admin::add_admin_menu_pages().
  • Existing settings page is mailchimp_sf_options via add_menu_page()
  • Templates are in includes/admin/templates
  • Available lists are in mailchimp_sf_lists option, currently selected list in mc_list_id.

Implementation Breakdown

1. Admin Page Registration

  • Create includes/class-mailchimp-analytics.php with init(), register_admin_page(), render_page(), enqueue_scripts() methods
  • Register submenu via add_submenu_page() under mailchimp_sf_options with slug mailchimp_sf_analytics, capability manage_options
  • Only register page if Mailchimp account is connected.
  • Create template includes/admin/templates/analytics.php with page header matching existing Mailchimp admin header pattern

2. Date Range Selector

  • Preset dropdown: Last 7 days, Last 30 days (default), Last 90 days, Last 6 months, Last year, Custom
  • "Custom" reveals from/to date pickers.
  • Display resolved date range text (e.g., "Jan 1, 2026 - Jan 30, 2026")

3. List Filter Dropdown

  • Populated from mailchimp_sf_lists option, defaults to mc_list_id
  • Changing triggers data refresh for all sections.

4. Deep Link & Styling

  • Add "View detailed analytics in Mailchimp" link to https://DATA_CENTER.admin.mailchimp.com/analytics/audience-analytics/ (opens in new tab)
  • Create assets/css/analytics.css
  • Create assets/js/analytics.js
  • Enqueue Chart.js + analytics assets only on analytics page.

Acceptance Criteria

  • "Analytics" and "Form Settings" appear as submenu items under Mailchimp
  • The “Analytics” page will only be added if a Mailchimp account is connected.
  • Date range dropdown works with presets and custom calendar picker
  • List filter shows all connected lists and defaults correctly
  • Changing filters triggers section refresh
  • Deep link opens Mailchimp dashboard in new tab with rel="noopener noreferrer"
  • Assets are only loaded on the analytics page
  • Page requires manage_options capability

Activity

  1. ankitguptaindia commented on May 15, 2026

    @ankitguptaindia
    Collaborator

    QA Status: Approved with Condition ✅

    Test Results: All issues previously reported by QA have been fixed successfully. However, a few minor tweaks are still recommended. Since this PR has already been merged, I will create a separate follow-up ticket for those items.

    Follow-up Issue: #216

  2. added this to the 2.1.0 milestone on May 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions