Skip to content

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

@iamdharmesh

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions