fix: Implement unified menu structure matching original specification

• Fix menu system to use single unified structure instead of dual menus
  - Removed separate get_master_menu_structure() method
  - All users now see same base menu structure
  - Master Dashboard shows conditionally only for master trainers

• Restore missing Customize section for all users
  - Personal Profile access
  - Training Organizers management
  - Training Venues management
  - Add New Organizer/Venue shortcuts

• Correct menu hierarchy per specification:
  - Master Dashboard (conditional for hvac_master_trainer role)
  - Events > Dashboard, New Event
  - Certificates > Reports, New Certificate
  - Customize > Personal Profile, Training Organizers, Training Venues
  - Help
  - Logout

• Remove duplicate navigation for dual-role users
  - Single menu prevents UI confusion
  - Consistent experience across all user types
  - Proper conditional rendering

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
bengizmo 2025-08-01 10:58:57 -03:00
parent 40274d98ad
commit 402f81a828

View file

@ -120,14 +120,19 @@ class HVAC_Menu_System {
$user = wp_get_current_user();
$is_master = in_array('hvac_master_trainer', $user->roles) || current_user_can('manage_options');
// If user has master trainer role, ALWAYS show master menu
// This prevents duplicate navigation for dual-role users
$menu = array();
// Add Master Dashboard conditionally (only if user has master trainer role)
if ($is_master) {
return $this->get_master_menu_structure();
$menu[] = array(
'title' => 'Master Dashboard',
'url' => home_url('/master-trainer/master-dashboard/'),
'icon' => 'dashicons-star-filled'
);
}
$menu = array(
array(
// Events section
$menu[] = array(
'title' => 'Events',
'url' => '#',
'icon' => 'dashicons-calendar-alt',
@ -143,8 +148,10 @@ class HVAC_Menu_System {
'icon' => 'dashicons-plus-alt'
)
)
),
array(
);
// Certificates section
$menu[] = array(
'title' => 'Certificates',
'url' => '#',
'icon' => 'dashicons-awards',
@ -160,8 +167,10 @@ class HVAC_Menu_System {
'icon' => 'dashicons-plus-alt'
)
)
),
array(
);
// Customize section
$menu[] = array(
'title' => 'Customize',
'url' => '#',
'icon' => 'dashicons-admin-customizer',
@ -196,26 +205,16 @@ class HVAC_Menu_System {
)
)
)
),
array(
);
// Help section
$menu[] = array(
'title' => 'Help',
'url' => home_url('/trainer/documentation/'),
'icon' => 'dashicons-sos'
)
);
// Add Master Dashboard for qualified users
if ($is_master) {
array_splice($menu, 0, 0, array(
array(
'title' => 'Master Dashboard',
'url' => home_url('/master-trainer/master-dashboard/'),
'icon' => 'dashicons-star-filled'
)
));
}
// Add logout as last item
// Logout (always last)
$menu[] = array(
'title' => 'Logout',
'url' => wp_logout_url(home_url('/training-login/')),
@ -225,74 +224,6 @@ class HVAC_Menu_System {
return $menu;
}
/**
* Get master trainer menu structure
*/
private function get_master_menu_structure() {
$menu = array(
array(
'title' => 'Master Dashboard',
'url' => home_url('/master-trainer/master-dashboard/'),
'icon' => 'dashicons-dashboard'
),
array(
'title' => 'Trainer Dashboard',
'url' => home_url('/trainer/dashboard/'),
'icon' => 'dashicons-admin-home'
),
array(
'title' => 'Events',
'url' => '#',
'icon' => 'dashicons-calendar-alt',
'children' => array(
array(
'title' => 'All Events',
'url' => home_url('/master-trainer/events/'),
'icon' => 'dashicons-list-view'
),
array(
'title' => 'Create Event',
'url' => home_url('/trainer/create-event/'),
'icon' => 'dashicons-plus-alt'
),
array(
'title' => 'My Events',
'url' => home_url('/trainer/dashboard/'),
'icon' => 'dashicons-calendar'
)
)
),
array(
'title' => 'Certificates',
'url' => '#',
'icon' => 'dashicons-awards',
'children' => array(
array(
'title' => 'Certificate Reports',
'url' => home_url('/trainer/certificate-reports/'),
'icon' => 'dashicons-analytics'
),
array(
'title' => 'Generate Certificates',
'url' => home_url('/trainer/generate-certificates/'),
'icon' => 'dashicons-media-document'
)
)
),
array(
'title' => 'Profile',
'url' => home_url('/trainer/profile/'),
'icon' => 'dashicons-admin-users'
),
array(
'title' => 'Logout',
'url' => wp_logout_url(home_url('/training-login/')),
'icon' => 'dashicons-exit'
)
);
return $menu;
}
/**
* Render individual menu item