Commit graph

12 commits

Author SHA1 Message Date
bengizmo
c4ec1818b5 fix: Implement proper WordPress standards for navigation system
Completely removed JavaScript hack approach and implemented navigation using proper WordPress standards:

 WORDPRESS BEST PRACTICES IMPLEMENTED:
- Removed JavaScript injection hacks completely
- Modified dashboard template (template-hvac-dashboard.php) directly
- Used proper PHP template integration instead of DOM manipulation
- Navigation now renders server-side through WordPress template system

 TECHNICAL IMPROVEMENTS:
- Fixed JavaScript syntax error causing console errors
- Clean template integration with proper class instantiation
- Proper escaping and WordPress coding standards
- Maintainable code following WordPress plugin architecture

 PERFECT RESULTS:
- Enhanced navigation menu working flawlessly
- Professional horizontal navigation with icons and dropdowns
- Working breadcrumbs (Home › Trainer › Dashboard)
- Zero JavaScript errors
- Clean, semantic HTML output
- Responsive design integration

 NAVIGATION FEATURES:
🏠 Dashboard - Main trainer overview
📅 Events ▼ - Event management with dropdown
📍 Venues ▼ - Venue management with dropdown
🏢 Organizers ▼ - Organizer management with dropdown
👤 Profile ▼ - Profile management with dropdown

The navigation system now follows WordPress best practices with:
- Server-side rendering through templates
- Proper PHP class integration
- No JavaScript DOM manipulation
- Clean, maintainable code architecture
- Full compatibility with WordPress theme system

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 22:32:23 -03:00
bengizmo
ef87f555a0 feat: Integrate navigation and breadcrumbs into all trainer templates
- Created template integration class for automatic nav/breadcrumb injection
- Added trainer-header.php template part for consistent header
- Updated all trainer page templates to include navigation and breadcrumbs
- Navigation shows hierarchical menu with dropdowns
- Breadcrumbs provide context-aware navigation trail

All trainer pages now have consistent navigation structure

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 17:31:54 -03:00
bengizmo
70b78a069f feat: Add navigation menu system and breadcrumb functionality
- Implemented comprehensive trainer navigation system:
  * Horizontal and vertical navigation layouts
  * Multi-level menu with dropdowns for Events, Venues, Organizers, Profile
  * Responsive mobile navigation with hamburger menu
  * Keyboard navigation support (Arrow keys, Enter, Escape)
  * Active page highlighting
  * Master trainer menu items for users with appropriate role

- Created breadcrumb system:
  * Automatic breadcrumb generation based on URL structure
  * Shortcode support [hvac_breadcrumbs]
  * SEO-friendly with structured data (Schema.org)
  * Multiple style options (default, pills, arrows)
  * Responsive design

- Technical implementation:
  * HVAC_Trainer_Navigation class for menu management
  * HVAC_Breadcrumbs class for breadcrumb generation
  * CSS for both navigation and breadcrumbs
  * JavaScript for interactive menu behaviors
  * Template part for easy inclusion

Navigation provides easy access to all trainer features and improves UX.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 16:45:58 -03:00
bengizmo
e4f079a89c feat: Major registration refactor and new trainer management pages
- Refactored registration form:
  * Moved Application Details to Personal Information section
  * Renamed Business Information to Training Organization Information
  * Added required Organization Logo upload with media library integration
  * Added Headquarters location fields (City, State/Province, Country)
  * Moved training-related fields into Organization section
  * Created conditional Training Venue Information section with auto-population

- Created comprehensive venue management system:
  * Training Venues List page (/trainer/venue/list) with filtering and pagination
  * Manage Venue page (/trainer/venue/manage) for create/edit operations
  * Full integration with The Events Calendar venue post type
  * AJAX-powered forms with real-time validation

- Created trainer profile system:
  * Trainer Profile view page (/trainer/profile) with stats and certifications
  * Profile Edit page (/trainer/profile/edit) with photo upload
  * Years of experience tracking and professional information
  * Integration with user meta and custom fields

- Created training organizers management:
  * Organizers List page (/trainer/organizer/list) with search functionality
  * Manage Organizer page (/trainer/organizer/manage) for CRUD operations
  * Organization logo upload and headquarters tracking
  * Full integration with The Events Calendar organizer post type

- Technical improvements:
  * Modular PHP class architecture for each feature
  * Comprehensive AJAX handlers with security nonces
  * Responsive CSS design for all new pages
  * JavaScript form validation and dynamic behavior
  * Proper WordPress and TEC API integration

All new features follow hierarchical URL structure and include breadcrumb navigation.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 16:29:51 -03:00
bengizmo
00b3b2008b fix: Resolve event manage page CSS override and duplicate header issues
- Scoped all CSS rules to .hvac-event-manage-wrapper to prevent theme conflicts
- Moved navigation header directly into page template to avoid duplication
- Disabled duplicate header hook in HVAC_Event_Manage_Header class
- Added theme override styles to enforce 1200px max-width and 20px padding
- Updated CSS methodology to use consistent spacing and remove CSS variables
- Added HVAC_Page_Content_Fixer class to clean escaped HTML comments
- Updated documentation with CSS architecture details
- Enhanced theme compatibility with higher specificity selectors

The event manage page now displays correctly with:
- Single navigation header (no duplicates)
- Proper white background and shadows
- Consistent button styling matching other pages
- Clean 1200px max-width layout with 20px padding

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 15:36:39 -03:00
bengizmo
0a627a6a1f fix: Remove persistent HTML comment from manage event page
- Modified page-manage-event.php template to access raw post content directly
- Added comprehensive regex patterns to strip all variations of wp:shortcode comments
- Disabled the_content filter in HVAC_Manage_Event class to prevent conflicts
- Added client-side JavaScript fallback to remove any remaining HTML comments
- Created cache clearing script for troubleshooting

The issue was that apply_filters('the_content') was potentially re-adding
content after we stripped the HTML comments. Now we bypass all filters
and process the raw content directly.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-30 11:27:58 -03:00
bengizmo
a1abbf1577 fix: Resolve duplicate content and raw shortcode display on manage event page
- 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>
2025-07-30 10:06:49 -03:00
bengizmo
fda7b6fa59 feat: Add missing page templates for all HVAC plugin pages
- Created 14 new page template files for trainer/master trainer pages
- Added page-templates.css for consistent layout across all HVAC pages
- Templates use appropriate shortcodes for each page functionality
- Ensures proper content display without sidebars
- Fixes blank page issues on staging

Templates added:
- Trainer profile, event management, certificates
- Email attendees, communication templates/schedules
- Master dashboard, Google Sheets, certificate diagnostics
- Account status pages (pending, disabled, registration pending)

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 20:39:14 -03:00
bengizmo
81190ec4a0 Fix legacy URL redirects being intercepted by access control
- 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>
2025-07-28 19:45:43 -03:00
bengizmo
a58ea1603c fix: Resolve duplicate initialization and jQuery selector errors
- Implement singleton pattern for HVAC_Enhanced_Settings to prevent duplicate initialization
- Fix jQuery selector error by checking for valid hash selectors before using $(href)
- Add default email templates with professional copy for trainer notifications
- Update plugin version to 1.0.1 for cache busting
- Remove duplicate Enhanced Settings initialization from HVAC_Community_Events
- Add force cache refresh suffix to admin scripts

This resolves the duplicate content issue on email templates page and fixes
JavaScript errors in the admin interface.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 17:58:39 -03:00
bengizmo
f0edd05369 feat: Implement trainer approval workflow with status management
- Add trainer status system (pending, approved, active, inactive, disabled)
- Create access control system based on trainer status
- Refactor Master Dashboard with enhanced trainer table
  - Add status column and filtering
  - Implement search and pagination
  - Add bulk status update functionality
- Create status pages for pending and disabled trainers
- Implement approval workflow with email notifications
- Add email template management to settings page
- Include comprehensive test suite (unit, integration, E2E)

This allows Master Trainers to manage trainer accounts, approve new registrations,
and control access based on account status. Trainers must be approved before
accessing dashboard features.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 12:38:34 -03:00
bengizmo
2cb37d0285 fix: Ensure trainer registration page is publicly accessible
- Added explicit checks to prevent authentication redirects on registration page
- Added ensure_registration_page_public() method with priority 1 to run before other auth checks
- Included registration-pending and training-login pages in public pages list
- Added fallback function in main plugin file to remove auth hooks on registration page

This ensures that users can access /trainer/registration/ without being logged in, as intended for new trainer signups.
2025-07-28 10:30:54 -03:00