- Create consistent test structure with latest Playwright version (1.52.0)
- Implement trainer-journey-harmonized.test.ts that works with updated Playwright
- Fix package.json to ensure consistent dependencies
- Add certificate-basic.spec.ts that avoids framework compatibility issues
- Create run-advanced-tests.sh script with enhanced configuration options
- Add comprehensive documentation for the harmonized testing approach
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Create comprehensive Node.js-based trainer journey test
- Implement event creation, dashboard verification, and certificate testing
- Add robust error handling and detailed logging
- Bypass Playwright framework issues with direct Playwright API usage
- Ensure test can run independently of test framework configuration
- Update trainer journey tests to include comprehensive certificate testing
- Add attendee search and filtering functionality to the test
- Implement certificate generation and viewing test steps
- Improve documentation with updated test coverage
- Create run script for trainer journey with certificates test
- Update test plan to reflect implemented features
- Fix Playwright version conflicts in package.json
- Create standalone Node.js certificate testing script
- Improve test reliability by avoiding framework issues
- Test certificate generation and report pages
- Implement filter testing for attendee search
- Add detailed logging for certificate test results
- Add detailed certificate testing instructions to CLAUDE.md
- Document certificate filtering test processes
- Include certificate test data generation scripts
- Add page object model details for certificate testing
- Document certificate system components and testing workflow
- Add CertificatePage for certificate operations
- Create BasePage for common page object functionality
- Implement CertificateTestData for test data generation
- Create optimized certificate tests with improved stability
- Add test-certificate-filter.sh script for testing certificate filtering
- Improve test organization and reliability
- Add dedicated AttendeeFilterPage for isolating filtering functionality
- Create optimized certificate test focusing on attendee search
- Document testing strategy and best practices
- Add script to analyze and improve Playwright configuration
- Create optimized Playwright configuration template
- Resolve test stability issues with simplified approach
- Improve test isolation and reliability for certificates
- Add comprehensive test data generation scripts for certificate testing
- Create scripts to verify certificate data and attendee filtering
- Add detailed findings and documentation on test data
- Include certificate tests for various filter combinations
- Fix issues with attendee filtering implementation in template
- Add validation for certificate template file syntax
- Document test data structure and verification results
This commit addresses the 500 error on the certificate-reports page by:
1. Adding proper error handling to certificate templates
2. Ensuring required classes are loaded in the right order
3. Adding try-catch blocks for better error reporting
4. Creating diagnostic and troubleshooting tools
5. Fixing method signature issues in the certificate manager
The issues were caused by missing database tables or classes not being loaded in the correct order.
Additional improvements:
- Added certificate system diagnostic scripts
- Added comprehensive troubleshooting documentation
- Added automated fix deploy script
This commit:
- Creates comprehensive CERTIFICATE_TESTING_GUIDE.md to document certificate testing
- Updates TRAINER_JOURNEY_TEST_SUMMARY.md to include certificate functionality
- Updates main README.md with certificate testing information
- Creates a centralized Config.ts utility for consistent configuration
- Updates CertificatePage.ts and other page objects for consistency
- Creates a guided manual test script (run-certificate-tests.sh)
- Archives outdated certificate test files
- Improves documentation organization and consistency
- Created CertificatePage class for testing certificate functionality
- Updated DashboardPage to support certificate links in navigation
- Implemented test data generator for certificate testing
- Added tests for certificate generation with checked-in users
- Added tests for certificate generation with non-checked-in users
- Added certificate management (view/email/revoke) tests
- Created comprehensive trainer journey test including certificates
- Added utility script to run certificate-specific tests
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add certificate database table for storing certificate records
- Create certificate generator using TCPDF library
- Implement certificate template system with HTML templates
- Add certificate management UI for viewing, emailing, and revoking
- Add AJAX handlers for certificate actions
- Implement secure certificate download with tokenization
- Create certificate reports and generation pages with appropriate UI
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add detailed logging for email system to track issues
- Use PHP mail() as fallback when wp_mail() fails
- Improve recipient matching and validation
- Add debug tools to diagnose email issues on staging
- Add email system debugging panel for admin users
- Fix direct sending for attendees created from test data
- Handle different email field formats from test attendees
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update email attendees class to handle custom attendee data
- Add fallback method to directly query attendee data from database
- Support multiple field formats for attendee names and emails
- Ensure email page works with test attendees created via WP-CLI
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update dashboard data class to check multiple meta field formats
- Add attendee counting to calculate stats when meta fields missing
- Add revenue calculation based on ticket prices and attendee count
- Add fallback methods for direct database queries
- Fix event summary data to update dashboard stats on view
- Handle check-in status from multiple possible field formats
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add responsive button styles with mobile optimization
- Implement accessibility focus styles and keyboard navigation support
- Create animation system for smoother interactive elements
- Add mobile navigation menu for dashboard and main pages
- Include print stylesheet for better printable event summaries
- Optimize all UI components for better usability and consistency
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Updated the dashboard shortcode render method to use the correct template path.
Added page rendering verification test to ensure shortcodes render properly.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implements the Email Attendees feature which allows trainers to:
- Email event attendees directly from the Event Summary page
- Filter attendees by ticket type
- Use a rich text editor to compose messages
- Include CC recipients
- Send personalized emails to selected attendees
Includes unit tests, integration tests, and E2E tests to verify functionality.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Enhanced Order Summary template with detailed information display
- Added comprehensive order details including events, tickets, and notes
- Improved Order Summary Data class with additional functionality
- Added access control to ensure only authorized users can view orders
- Created links from Event Summary page to Order Summary page
- Added E2E test for the Order Summary feature
- Created helper script for Order Summary page creation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add profile edit form template
- Implement profile update handler with validation
- Add profile update shortcode registration
- Create E2E test for profile editing
- Support updating personal & business info, location info and training preferences
- Add password change functionality with validation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add specific test for unauthorized access
- Simplify test assertions to be more reliable
- Make tests more resilient to different redirect behaviors
- Update .gitignore to include E2E test files
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add robust authentication check in the template file
- Add WordPress hook at template_redirect to prevent unauthorized access
- Update Event Summary Data class with permission methods
- Modify E2E test to check for accessibility after login
- Fix potential errors in the plugin activation code for page creation
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add event-summary page to required_pages array in main plugin file
- Update render_event_summary() method to handle event ID from URL
- Update template_include filter to load custom event summary template
- Update dashboard event links to point to new event summary page
- Create comprehensive event summary template with statistics and attendee info
- Add E2E tests for Event Summary Page
- Add documentation for Event Summary functionality
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add trainer-profile page to required_pages array in main plugin file
- Create template-trainer-profile.php with comprehensive profile display
- Implement render_trainer_profile() function in main class
- Add template loading for trainer-profile page
- Create helper script to ensure trainer-profile page exists in WordPress
- Fix shortcode registration in Login_Handler to prevent duplicates
- Add dashboard verification script for testing
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix the Trainer Login page to directly use Login_Handler class
- Skip shortcode processing and call render_login_form directly
- Ensure Login_Handler class is loaded before rendering the form
The issue was that the shortcode registration mechanism wasn't working properly
between the namespace and the static/non-static method calls. By directly
instantiating the Login_Handler class and calling the render method, we bypass
the shortcode system and directly render the login form.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix shortcode registration for community login with correct namespace
- Create dedicated page template for community-login page
- Enable template_include filter to properly load custom page templates
- Fix early loading of Login_Handler class
- Update Trainer Login page title and template handling
- Ensure proper shortcode execution on the login page
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add a direct link to the Trainer Login page under HVAC Community Events menu
- Link directly to the community-login frontend page
- Maintain consistent positioning in the menu structure
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix attendee count to properly query Event Tickets data
- Add support for counting attendees across all ticket providers (RSVP, PayPal, Tickets Commerce)
- Implement detailed revenue metrics from multiple sources
- Support Event Tickets Plus with WooCommerce ticket sales
- Add support for Tickets Commerce revenue statistics
- Add support for legacy PayPal ticket sales
- Improve dashboard accuracy with proper database queries
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix undefined constants in HVAC_Zoho_CRM_Auth class
- Add conditional constant checking for all Zoho configuration constants
- Update zoho-admin.php to use correct method signature for make_api_request
- Create zoho-config.php with default configuration values
- Ensure all ZOHO_* constants have fallback defaults when undefined
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement OAuth 2.0 authentication for Zoho CRM
- Add sync functionality for Events → Campaigns, Users → Contacts, Orders → Invoices
- Create staging mode that prevents production syncs from non-production domains
- Build admin interface for sync management
- Add comprehensive field mapping between WordPress and Zoho
- Include test scripts and documentation
- Ensure production sync only on upskillhvac.com domain
- Document enhanced event creation testing improvements
- Add Breeze cache clearing script and integration
- Detail form field mapping discoveries
- Note current validation issues with description field
- Include multiple test approaches implemented
- Update error handling and debugging capabilities
- Create test event setup scripts for staging environment
- Implement extended trainer journey test with improved error handling
- Add test data creation script to generate 5 events with varying prices
- Update trainer journey tests to handle different success scenarios
- Improve test resilience with flexible success indicator checks
Co-authored-by: Ben Reed <ben@tealmaker.com>
- Remove 7,113 backup files from Git LFS tracking
- Add bin/backups to .gitignore
- Significantly reduce repository size by removing unnecessary files
- These backups should not be in version control
Co-authored-by: Ben Reed <ben@tealmaker.com>