• Add user role field to registration, profile display, and profile edit
- 10 role options: technician, installer, supervisor, manager, trainer, consultant, sales rep, engineer, business owner, other
- Required field with server-side validation
- Radio buttons in registration, dropdown in profile edit
- Displays in profile with proper capitalization
• Implement advanced certification tracking system
- Date Certified: HTML5 date picker with validation (no future dates)
- Certification Type: dropdown with "Certified measureQuick Trainer" and "Certified measureQuick Champion"
- Certification Status: color-coded status badges (Active/Expired/Pending/Disabled)
• Add sophisticated role-based access control
- Regular trainers: read-only access to certification fields
- Administrators & master trainers: full edit access to certification fields
- Visual indicators for read-only fields
- Server-side permission validation
• Enhance plugin activation system
- Initialize all 36 user meta fields for existing users
- Smart default assignment based on user capabilities
- Backward compatibility maintained
• Add professional UI styling
- Blue-bordered certification section with trophy icon
- Color-coded status badges with proper contrast
- Read-only field styling with visual indicators
- Enhanced form controls with focus states
• Comprehensive testing and documentation
- E2E test coverage with visual verification
- Updated API reference with new meta fields
- Access control patterns documented
- 100% test pass rate on staging environment
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Strip WordPress block editor comments (<\!-- wp:shortcode -->) from content
- Prevent duplicate header rendering when using page template vs shortcode
- Add conditional header rendering based on URL path to avoid duplication
- Header now only renders for non-hierarchical URLs where template isn't used
The manage event page was showing duplicate "Create and Manage Your HVAC Training Events"
sections and raw block editor comments because both the template and the header class
were outputting content, and block editor wrapper comments weren't being stripped.
Co-Authored-By: Ben Reed <ben@tealmaker.com>
- Added is_legacy_url() check in access control to allow redirects to happen first
- Legacy URLs like /hvac-dashboard/ now properly redirect to /trainer/dashboard/
- Prevents authentication check from blocking legacy URL redirects
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>