- Made CSS animations specific to .hvac-content wrapper to prevent affecting non-HVAC pages
- Added JavaScript safety checks to only run animations on HVAC pages
- Fixed overly broad CSS selectors that were hiding content globally
- Added early return in JavaScript if not on HVAC page
- Fixed animation table row selectors to be HVAC-specific
The root cause was CSS/JS affecting elements with generic class names site-wide.
Now animations only target elements within HVAC plugin pages.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit fixes all major certificate functionality issues reported by the user:
## Key Fixes Applied:
### 1. JavaScript Syntax Error Resolution
- Fixed escaped exclamation mark (\!) in hvac-certificate-actions.js line 119
- This syntax error was preventing the entire JavaScript file from executing
- Removed corrupted content at end of file
### 2. Dynamic Form Handling Implementation
- Converted static event handlers to event delegation for dynamic forms
- Generate certificates form is created dynamically after event selection
- Updated all button handlers (select-all, deselect-all, etc.) to use event delegation
- Fixed initialization logic to detect generate certificates page correctly
### 3. Backend AJAX Functionality Verification
- Confirmed AJAX handlers are properly registered and working
- Direct testing shows AJAX endpoints return correct data (5 attendees for test event)
- Certificate generation, viewing, and emailing backends are fully functional
### 4. Template Query Standardization
- Updated generate certificates template to use same attendee query as AJAX handler
- Fixed outdated TEC attendee post types and meta key references
- Standardized on modern TEC structure (tec_tc_attendee, tribe_tpp_attendees)
- Added proper COALESCE handling for multiple email/name field variations
### 5. Event Handler Architecture Improvement
- Fixed form detection logic for dynamically created certificate generation form
- Improved script initialization to handle both static and dynamic page elements
- Enhanced error handling and user feedback systems
## Technical Details:
**Before:** Certificate generation, viewing, and emailing were completely non-functional
- JavaScript syntax errors prevented any interactions
- Template used outdated database queries
- Event handlers weren't attached to dynamic forms
**After:** Full certificate workflow is restored
- Users can select events and see attendees dynamically loaded
- AJAX-powered attendee loading works correctly
- Certificate generation backend processes requests properly
- View and email certificate functionality is operational
## Testing Results:
- ✅ AJAX backend endpoints return correct data (verified with direct API calls)
- ✅ JavaScript files load and initialize properly
- ✅ Event selection triggers proper page updates
- ✅ Generate Certificates page shows correct event/attendee structure
- ✅ All 5 original UI issues previously reported are resolved
This completes the certificate functionality restoration requested by the user.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 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>
Updated hvac-certificate-actions.js and zoho-admin.js to use the modern toast notification system instead of browser alerts, with fallback to alert() if HVACToast is not available. This provides a better user experience with consistent styling and non-blocking notifications.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated comprehensive test data script to use proper deployment configuration
- Fixed test data script file paths and deployment process
- Enhanced login form with better error/success messaging
- Improved Zoho admin interface with detailed OAuth flow
- Fixed login page styling to prevent theme constraints
- Added proper error handling for expired/invalid Zoho tokens
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add interactive welcome guide modal with 4 informative cards
- Implement cookie-based dismissal lasting 30 days
- Create tooltips system for major sections across custom pages
- Add comprehensive documentation page with FAQs and step-by-step guides
- Include Font Awesome icons for visual enhancement
- Add Help buttons to navigation across all pages
- Enhance user onboarding and platform understanding
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Enhanced error messages for Zoho CRM connection test failures
- Added detailed error information display in admin UI
- Created diagnostics.php script for advanced troubleshooting
- Improved logging with file, line, and stack trace information
- Added client ID, secret, and refresh token validation checks
- Enhanced CSS styling for error messages and debugging info
- Added configuration status checks to help identify issues
🤖 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 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>
- 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
Implements the full HTML structure for the Community Registration form based on requirements, including all specified fields, labels, hints, and basic structure for error display. Adds corresponding JavaScript for dynamic state/province dropdown population.
Creates initial E2E tests (`registration.spec.ts`) for the registration page covering loading, validation scenarios (empty fields, invalid email, password mismatch, weak password), and successful submission. Creates a test data file (`personas.ts`) with sample user data.
Undertakes extensive debugging of failing E2E tests:
- Resolved initial shortcode rendering failure by correctly instantiating the `HVAC_Registration` class.
- Fixed incorrect form ID and submit button selectors in E2E tests.
- Corrected field ID selector (`#business_phone`) in E2E test.
- Refactored form submission handling multiple times (trying `init` hook, `admin_post` hooks, and direct shortcode processing) to address issues with validation error display and success redirects. Reverted to using the `init` hook with transient-based error handling as the most promising path despite current display issues.
- Identified and fixed a fatal PHP error ("Cannot redeclare handle_profile_image_upload") caused by duplicated code during refactoring.
- Troubleshot and resolved Docker volume/cache issues preventing code fixes from taking effect by restarting containers and flushing caches.
- Added and subsequently removed extensive diagnostic logging throughout the PHP classes and main plugin file to trace execution flow.
- Refined Playwright waits in E2E tests, specifically for the dynamically populated state dropdown.
Updates Memory Bank files (`activeContext.md`, `progress.md`) and `docs/implementation_plan.md` to reflect the completed unit test validation (Task 0.6) and the current debugging status of registration E2E tests (Task 1.10).
Current Status:
- Fatal errors resolved, plugin initializes correctly.
- Login E2E tests pass.
- Registration page loads correctly.
- Successful registration E2E test path completes form filling and submission, resulting in the expected redirect.
- Validation error E2E tests still fail as backend errors are not displayed on the frontend after form submission/redirect. Further debugging needed on error display mechanism (likely transient handling or HTML rendering).
Modified Files:
- docs/implementation_plan.md
- memory-bank/activeContext.md
- memory-bank/progress.md
- wordpress-dev/tests/e2e/data/personas.ts (new)
- wordpress-dev/tests/e2e/tests/registration.spec.ts (new)
- wordpress-dev/wordpress/wp-content/plugins/hvac-community-events/assets/js/hvac-registration.js
- wordpress-dev/wordpress/wp-content/plugins/hvac-community-events/hvac-community-events.php
- wordpress-dev/wordpress/wp-content/plugins/hvac-community-events/includes/class-hvac-community-events.php
- wordpress-dev/wordpress/wp-content/plugins/hvac-community-events/includes/class-hvac-registration.php
Implements automatic creation of required plugin pages (Community Login,
Trainer Registration, Trainer Dashboard) upon plugin activation. This
addresses E2E test failures caused by missing pages in the test
environment.
- Adds activation hook in `hvac-community-events.php` to call
`hvac_ce_create_required_pages`.
- The callback function checks for existing pages by slug and creates
them using `wp_insert_post` if missing. Includes debug logging.
Also fixes issues identified during E2E test debugging:
- Corrects fatal error in `includes/community/class-login-handler.php`
by replacing undefined constant `HVAC_COMMUNITY_EVENTS_PATH` with
`HVAC_CE_PLUGIN_DIR`.
- Updates `tests/e2e/tests/login.spec.ts` to use the correct selector
`#wp-submit` for the login form submit button instead of
`button[type="submit"]`.
Documentation updates:
- Adds `docs/automatic-page-creation-plan.md`.
- Updates `README.md` regarding automatic page creation.
- Updates Memory Bank files (`decisionLog.md`, `progress.md`,
`activeContext.md`).
Note: Activation hook logging did not appear during WP-CLI activation,
requiring further investigation if page creation issues persist. E2E
test confirmation pending.