• 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>
		
			
				
	
	
		
			167 lines
		
	
	
		
			No EOL
		
	
	
		
			6.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			No EOL
		
	
	
		
			6.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * HVAC Event Navigation Shortcode
 | |
|  * 
 | |
|  * Provides a shortcode for adding navigation to event-related pages
 | |
|  * 
 | |
|  * @package HVAC_Community_Events
 | |
|  * @since 1.0.0
 | |
|  */
 | |
| 
 | |
| if (!defined('ABSPATH')) {
 | |
|     exit;
 | |
| }
 | |
| 
 | |
| class HVAC_Event_Navigation {
 | |
|     
 | |
|     /**
 | |
|      * Constructor - DISABLED: Replaced with HVAC_Menu_System
 | |
|      */
 | |
|     public function __construct() {
 | |
|         // Old event navigation disabled to prevent conflicts with new WordPress menu system
 | |
|         // All functionality moved to HVAC_Menu_System class
 | |
|         
 | |
|         // // Register the shortcode
 | |
|         // add_shortcode('hvac_event_navigation', array($this, 'render_navigation'));
 | |
|     }
 | |
|     
 | |
|     /**
 | |
|      * Render the navigation shortcode
 | |
|      */
 | |
|     public function render_navigation($atts = array()) {
 | |
|         // Parse attributes
 | |
|         $atts = shortcode_atts(array(
 | |
|             'page_title' => '',
 | |
|             'show_instructions' => 'no'
 | |
|         ), $atts);
 | |
|         
 | |
|         // Start output buffering
 | |
|         ob_start();
 | |
|         
 | |
|         // Check if Help System is available for tooltips
 | |
|         $help_available = class_exists('HVAC_Help_System');
 | |
|         
 | |
|         ?>
 | |
|         <div class="hvac-dashboard-header">
 | |
|             <?php if (!empty($atts['page_title'])) : ?>
 | |
|                 <h1 class="entry-title"><?php echo esc_html($atts['page_title']); ?></h1>
 | |
|             <?php endif; ?>
 | |
|             <div class="hvac-dashboard-nav">
 | |
|                 <?php
 | |
|                 // Dashboard link
 | |
|                 if ($help_available) {
 | |
|                     echo HVAC_Help_System::add_tooltip(
 | |
|                         '<a href="' . esc_url(home_url('/hvac-dashboard/')) . '" class="ast-button ast-button-secondary">Dashboard</a>',
 | |
|                         'Return to your main dashboard to view stats and manage events'
 | |
|                     );
 | |
|                 } else {
 | |
|                     echo '<a href="' . esc_url(home_url('/hvac-dashboard/')) . '" class="ast-button ast-button-secondary">Dashboard</a>';
 | |
|                 }
 | |
|                 
 | |
|                 // Generate Certificates link
 | |
|                 if ($help_available) {
 | |
|                     echo HVAC_Help_System::add_tooltip(
 | |
|                         '<a href="' . esc_url(home_url('/generate-certificates/')) . '" class="ast-button ast-button-primary">Generate Certificates</a>',
 | |
|                         'Create professional certificates for attendees who completed your training'
 | |
|                     );
 | |
|                 } else {
 | |
|                     echo '<a href="' . esc_url(home_url('/generate-certificates/')) . '" class="ast-button ast-button-primary">Generate Certificates</a>';
 | |
|                 }
 | |
|                 
 | |
|                 // Certificate Reports link
 | |
|                 if ($help_available) {
 | |
|                     echo HVAC_Help_System::add_tooltip(
 | |
|                         '<a href="' . esc_url(home_url('/certificate-reports/')) . '" class="ast-button ast-button-primary">Certificate Reports</a>',
 | |
|                         'View and manage all certificates you\'ve issued to attendees'
 | |
|                     );
 | |
|                 } else {
 | |
|                     echo '<a href="' . esc_url(home_url('/certificate-reports/')) . '" class="ast-button ast-button-primary">Certificate Reports</a>';
 | |
|                 }
 | |
|                 
 | |
|                 // Trainer Profile link
 | |
|                 if ($help_available) {
 | |
|                     echo HVAC_Help_System::add_tooltip(
 | |
|                         '<a href="' . esc_url(home_url('/trainer-profile/')) . '" class="ast-button ast-button-secondary">View Profile</a>',
 | |
|                         'Update your professional credentials, business information, and training specialties'
 | |
|                     );
 | |
|                 } else {
 | |
|                     echo '<a href="' . esc_url(home_url('/trainer-profile/')) . '" class="ast-button ast-button-secondary">View Profile</a>';
 | |
|                 }
 | |
|                 
 | |
|                 // Help and Logout links
 | |
|                 ?>
 | |
|                 <a href="<?php echo esc_url(home_url('/hvac-documentation/')); ?>" class="ast-button ast-button-secondary">Help</a>
 | |
|                 <a href="<?php echo esc_url(wp_logout_url(home_url('/community-login/'))); ?>" class="ast-button ast-button-secondary">Logout</a>
 | |
|             </div>
 | |
|         </div>
 | |
|         
 | |
|         <?php if ($atts['show_instructions'] === 'yes') : ?>
 | |
|         <div class="hvac-info-section">
 | |
|             <div class="hvac-instruction-text">
 | |
|                 <p><strong>📝 Create Your Training Event:</strong> Fill in the required fields below including event title, dates, and pricing. All fields marked with an asterisk (*) are required for publication.</p>
 | |
|                 <p><strong>🎯 Event Visibility:</strong> Your published events will appear in the main events directory and your trainer dashboard, where attendees can register and make payments.</p>
 | |
|                 <p><strong>💼 Professional Features:</strong> Each event includes automatic attendee management, certificate generation capabilities, and integrated payment processing through PayPal.</p>
 | |
|             </div>
 | |
|         </div>
 | |
|         <?php endif; ?>
 | |
|         
 | |
|         <style>
 | |
|         .hvac-dashboard-header {
 | |
|             display: flex;
 | |
|             justify-content: space-between;
 | |
|             align-items: center;
 | |
|             margin-bottom: 20px;
 | |
|             flex-wrap: wrap;
 | |
|         }
 | |
|         
 | |
|         .hvac-dashboard-nav {
 | |
|             display: flex;
 | |
|             gap: 10px;
 | |
|             flex-wrap: wrap;
 | |
|         }
 | |
|         
 | |
|         .hvac-info-section {
 | |
|             background: #f8f9fa;
 | |
|             border: 1px solid #e9ecef;
 | |
|             border-radius: 8px;
 | |
|             padding: 20px;
 | |
|             margin: 20px 0 30px 0;
 | |
|             box-shadow: 0 1px 3px rgba(0,0,0,0.1);
 | |
|         }
 | |
|         
 | |
|         .hvac-instruction-text {
 | |
|             font-size: 0.95rem;
 | |
|             line-height: 1.6;
 | |
|             color: #495057;
 | |
|         }
 | |
|         
 | |
|         .hvac-instruction-text p {
 | |
|             margin: 0 0 12px 0;
 | |
|         }
 | |
|         
 | |
|         .hvac-instruction-text p:last-child {
 | |
|             margin-bottom: 0;
 | |
|         }
 | |
|         
 | |
|         .hvac-instruction-text strong {
 | |
|             color: #212529;
 | |
|             font-weight: 600;
 | |
|         }
 | |
|         
 | |
|         @media (max-width: 768px) {
 | |
|             .hvac-dashboard-header {
 | |
|                 flex-direction: column;
 | |
|                 align-items: flex-start;
 | |
|             }
 | |
|             
 | |
|             .hvac-dashboard-nav {
 | |
|                 margin-top: 15px;
 | |
|                 width: 100%;
 | |
|             }
 | |
|         }
 | |
|         </style>
 | |
|         <?php
 | |
|         
 | |
|         return ob_get_clean();
 | |
|     }
 | |
| }
 |