Commit graph

11 commits

Author SHA1 Message Date
bengizmo
39eb20e72b fix: Implement parse_request fallback for certificate URLs
This commit provides a bulletproof solution for certificate download URLs that works even when WordPress rewrite rules fail.

## The Problem
Certificate URLs (/hvac-certificate/{token}/) were returning 404 errors because WordPress rewrite rules weren't being properly recognized, despite multiple attempts to flush them.

## The Solution
Implemented a parse_request hook that intercepts certificate URLs before WordPress handles routing. This approach:
- Works immediately without needing rewrite rule flushes
- Bypasses WordPress rewrite rule system entirely
- Catches certificate URLs early in the request lifecycle
- Provides same security and functionality as rewrite rules

## Technical Implementation
1. Added parse_request hook with priority 1 in Certificate Security class
2. Uses regex to detect /hvac-certificate/{token}/ pattern in REQUEST_URI
3. Validates token and serves certificate file directly
4. Exits after serving to prevent WordPress 404 handling

## Testing Results
 Direct certificate URL test shows handler is working
 Invalid tokens show 'Invalid or expired certificate download link'
 URLs are intercepted before WordPress 404 handling

## User Action Required
The certificate URL handling is now working. If certificates still don't download:
1. The download tokens may have expired (1 hour limit)
2. Certificate files may be missing from the server
3. New certificates need to be generated with working URLs

Users should:
- Generate new certificates to get fresh download tokens
- Check that certificate files exist in wp-content/uploads/hvac-certificates/
- Ensure .htaccess file exists in certificate directory for security

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-24 00:02:03 -03:00
bengizmo
af1e94061c fix: Enhanced certificate URL rewrite rules handling
This commit provides a comprehensive fix for the certificate download 404 errors:

## Problem
Certificate URLs (/hvac-certificate/{token}/) were returning 404 errors even after deployment because WordPress rewrite rules weren't properly registered or flushed.

## Solutions Implemented

### 1. Enhanced Plugin Activation
- Certificate security class is now initialized BEFORE flushing rewrite rules during activation
- This ensures the custom rewrite rule 'hvac-certificate/([^/]+)/?$' is registered
- Activation now properly adds the rule and flushes to make it active

### 2. Added Certificate Fix Admin Page
- New diagnostics page at /certificate-fix/ (admin only)
- Shows certificate system status including:
  - Database table status and counts
  - Certificate file directory status
  - Recent certificate activity
- Includes 'Flush Rewrite Rules' button for manual fixing
- Provides direct test link for rewrite rule verification

### 3. Rewrite Rules Test Tool
- Added test script accessible at /wp-admin/admin.php?test_certificate_rewrite=1
- Shows whether certificate rewrite rules are registered
- Verifies query vars are properly set
- Can manually add and flush rules if missing

### 4. Manual Flush Capability
- Admins can trigger flush via /wp-admin/?hvac_flush_rewrite=1
- Useful for debugging without accessing Certificate Fix page

## User Instructions
If certificate URLs still return 404:
1. Go to /certificate-fix/ page
2. Click 'Flush Rewrite Rules' button
3. Test certificate viewing again

The certificate download system uses secure token-based URLs that expire after 1 hour for security. These URLs must be properly registered with WordPress rewrite rules to function.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-23 23:20:29 -03:00
bengizmo
dea1200efb feat: Add comprehensive UX enhancements for mobile and desktop
- Create modern toast notification system replacing browser alerts
- Add mobile-responsive layouts with touch-friendly elements
- Implement loading states and progress indicators for all AJAX operations
- Add mobile navigation with collapsible menus
- Create enhanced form validation with inline error messages
- Add accessibility features (keyboard navigation, ARIA labels)
- Build comprehensive mobile testing suite
- Optimize for 320px to 1024px+ screen sizes
- Include progressive enhancement and fallback support

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-23 16:41:01 -03:00
bengizmo
d7773b5d04 fix: Resolve PHP errors in Certificate Manager SQL query construction
- Fix duplicate WHERE clause construction in get_user_certificate_count method
- Remove incorrect AND operator placement in search query
- Streamline SQL query building logic for better reliability
- All certificate functionality now working without PHP errors
- Comprehensive testing confirms all pages load correctly

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-23 14:13:31 -03:00
bengizmo
aa4d91e609 fix: Repair certificate generation and listing functionality
- Fixed broken certificate manager class caused by corrupted debug statement removal
- Cleaned up certificate manager by removing all debug logging statements
- Restored proper PHP syntax and error handling in certificate system
- Certificate generation should now work properly on Generate Certificates page
- Certificate listing should now display correctly on Certificate Reports page
- Deployed clean certificate manager to staging environment

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-23 10:19:38 -03:00
bengizmo
f5cb8c07cf Implement certificate preview system with AJAX to eliminate page reloads and provide real-time certificate previews with secure token-based access as requested by user feedback.
🎯 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-23 08:39:32 -03:00
bengizmo
add4911210 feat: Add PNG generation and fix certificate reports TEC query interference
Enhanced certificate system with:
- Added PNG generation capability using ImageMagick for certificate previews
- Fixed TEC query interference in Certificate Manager methods
- Updated database schema to include png_path column
- Enhanced E2E test to verify certificate preview functionality
- Replaced WP_Query with direct database queries in:
  - get_user_certificates()
  - get_user_certificate_count()
  - get_user_certificate_stats()
  - Certificate Reports template

Certificate statistics now showing correctly:
- Total: 169 certificates
- Active: 158 certificates
- Revoked: 11 certificates
- Emailed: 129 certificates

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-23 07:29:09 -03:00
bengizmo
dfb4faefcf docs: Update testing procedures in CLAUDE.md with comprehensive E2E test workflow 2025-05-21 20:12:22 -03:00
bengizmo
a24d3af81b feat: Add certificate test data generation and verification
- 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
2025-05-21 09:41:09 -03:00
bengizmo
31dae475a6 Fix certificate reports page 500 error
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
2025-05-20 23:29:41 -03:00
bengizmo
964d5f75a8 feat: Implement certificate generation system
- Add certificate database schema and installer
- Integrate TCPDF for PDF generation
- Create certificate management and generation classes
- Implement certificate template customization
- Add certificate reports and generation pages
- Integrate with check-in functionality
- Implement certificate viewing, revocation, and email features
- Add certificate actions to Event Summary page

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-20 15:17:55 -03:00