Control which parent menu item is highlighted as active in the Alpha Insights navigation.
This filter determines which parent menu item appears as active/selected. Useful when you have custom pages or need to override the default active state detection logic.
File: includes/classes/WPDAI_Admin_Menu.php
Method: WPDAI_Admin_Menu::get_active_parent_menu_item()
Line: ~592
| Parameter | Type | Description |
|---|---|---|
| $menu_item_key | string|null | The currently detected active parent menu item slug |
Type: string|null
Description: The menu item slug that should be marked as active
add_filter( 'wpd_alpha_insights_active_parent_menu_item', 'custom_page_active_menu' );
function custom_page_active_menu( $menu_item_key )
{
// If on custom analytics page, highlight Reports menu
if ( isset( $_GET['page'] ) && $_GET['page'] === 'custom-analytics' )
{
return 'reports';
}
return $menu_item_key;
}
add_filter( 'wpd_alpha_insights_active_parent_menu_item', 'group_pages_under_parent' );
function group_pages_under_parent( $menu_item_key )
{
if ( ! isset( $_GET['page'] ) )
{
return $menu_item_key;
}
$current_page = $_GET['page'];
// Multiple pages should highlight "Marketing" parent
$marketing_pages = array(
'facebook-campaigns',
'google-ads-campaigns',
'email-marketing',
'social-media'
);
if ( in_array( $current_page, $marketing_pages ) )
{
return 'marketing';
}
return $menu_item_key;
}
add_filter( 'wpd_alpha_insights_active_parent_menu_item', 'role_based_active_menu' );
function role_based_active_menu( $menu_item_key )
{
// Wholesale users always see Reports as active
$user = wp_get_current_user();
if ( in_array( 'wholesale_customer', $user->roles ) )
{
// Unless they're specifically in settings
if ( isset( $_GET['page'] ) && $_GET['page'] === 'settings' ) {
return 'settings';
}
return 'wholesale-reports';
}
return $menu_item_key;
}
add_filter( 'wpd_alpha_insights_active_parent_menu_item', 'query_param_active_menu' );
function query_param_active_menu( $menu_item_key )
{
// If viewing expense-related report, activate Expenses menu
if ( isset( $_GET['report_type'] ) && $_GET['report_type'] === 'expenses' )
{
return 'expenses';
}
// If viewing product cost report, activate Cost of Goods menu
if ( isset( $_GET['report_type'] ) && $_GET['report_type'] === 'product-costs' )
{
return 'cost-of-goods';
}
return $menu_item_key;
}
add_filter( 'wpd_alpha_insights_active_parent_menu_item', 'fallback_to_dashboard' );
function fallback_to_dashboard( $menu_item_key )
{
// If no active menu detected, default to dashboard
if ( empty( $menu_item_key ) )
{
return 'dashboard';
}
return $menu_item_key;
}
add_filter( 'wpd_alpha_insights_active_parent_menu_item', 'external_integration_active' );
function external_integration_active( $menu_item_key )
{
// If on WooCommerce product edit page with cost tab open
global $pagenow;
if ( $pagenow === 'post.php' &&
isset( $_GET['post'] ) &&
get_post_type( $_GET['post'] ) === 'product' &&
isset( $_GET['tab'] ) &&
$_GET['tab'] === 'alpha-insights' )
{
return 'cost-of-goods';
}
return $menu_item_key;
}
add_filter( 'wpd_alpha_insights_active_parent_menu_item', 'debug_active_menu' );
function debug_active_menu( $menu_item_key )
{
error_log( sprintf(
'Active Parent Menu: %s | Current Page: %s',
$menu_item_key ? $menu_item_key : 'none',
isset( $_GET['page'] ) ? $_GET['page'] : 'unknown'
));
return $menu_item_key;
}
$_GET['page'] parameterBy default, Alpha Insights determines the active parent menu by:
page URL parameterThe active parent menu item typically:
| Scenario | Solution |
|---|---|
| Custom report page | Return 'reports' to highlight Reports menu |
| External integration page | Return relevant parent slug based on context |
| Modal or overlay interface | Return null or preserve existing active state |
| Grouped functionality | Return common parent for related pages |
WPDAI_Admin_Menu - Menu management and rendering