Commit graph

17 commits

Author SHA1 Message Date
bengizmo
a82616b6f7 Fix dashboard data inconsistency and enhance test suite with WP API
- Fixed dashboard data class to use consistent post_author queries instead of mixed _EventOrganizerID meta queries
- This resolves the issue where dashboard showed 18 events but 0 tickets/revenue
- Added WordPress API credentials to environment (.env)
- Created comprehensive API debugging utilities (wp-api-debug.sh, wp-api-fix.sh, api-only-debug.sh)
- Enhanced test and deployment suite with WordPress REST API capabilities
- Root cause: get_total_tickets_sold() and get_total_revenue() were using _EventOrganizerID while other methods used post_author

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-22 19:24:18 -03:00
bengizmo
a014a9d7f7 fix: Resolve redirect loop when WordPress admin accesses HVAC dashboard
- Updated dashboard template to show access denied message instead of redirect for non-authorized users
- Enhanced login handler to redirect admins to WP admin instead of causing loops
- Added view_hvac_dashboard capability to administrator role during plugin activation
- Improved access control logic to allow administrators to view dashboard
- Added proper cleanup of admin capabilities on plugin deactivation
- Prevents ERR_TOO_MANY_REDIRECTS when WordPress admin users try to access trainer dashboard

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-22 15:59:33 -03:00
bengizmo
64af743cdd fix: Improve email sending functionality and debugging
- Remove problematic  filter implementation
- Add improved email debugging and logging
- Enhance error handling for wp_mail failures
- Add helpful email troubleshooting information
- Add SMTP configuration debugging

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-20 16:48:23 -03:00
bengizmo
8a9f86718f fix: Enhance email system with better error handling and debugging
- 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>
2025-05-20 16:38:28 -03:00
bengizmo
6f3dab5c53 fix: Add direct database query fallback for email attendees page
- 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>
2025-05-20 16:35:15 -03:00
bengizmo
967d3e9c4c fix: Improve dashboard data retrieval for test attendees
- 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>
2025-05-20 16:29:37 -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
bengizmo
e6bdce4301 feat: Add Email Attendees functionality (Phase 2)
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>
2025-05-20 10:33:03 -03:00
bengizmo
11bad93a65 feat: Implement Order Summary page functionality
- 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>
2025-05-20 09:56:28 -03:00
bengizmo
88c1cd1990 fix: Enhance Event Summary authentication checks
- 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>
2025-05-20 09:14:22 -03:00
bengizmo
e59c2e5ccc feat: Add Trainer Profile page and functionality
- 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>
2025-05-20 07:43:39 -03:00
bengizmo
7a93e52576 Clean up repository: Remove WordPress core files from tracking
- Add proper .gitignore for wordpress-dev directory
- Remove 27,765 WordPress core files from git tracking
- Keep only our custom HVAC plugin and necessary project files
- Fix git LFS issues by reducing tracked files
- Maintain TEC plugin customizations that were made

This significantly reduces repository size and focuses tracking on our custom code only.

Co-authored-by: Ben Reed <ben@tealmaker.com>
2025-05-18 18:43:41 -03:00
bengizmo
7fa7459fad Refactors event submission and listing to use TEC Community Events
shortcodes ([tribe_community_events view=\"...\"]) on dedicated pages
(/manage-event/, /my-events/) instead of child theme template overrides.

This change addresses persistent content duplication and layout issues
encountered with the template override method.

Changes include:
- Updating plugin activation hook to create new pages with shortcodes.
- Updating dashboard links to point to new pages.
- Removing child theme override files and related custom handler logic.
- Updating integration tests for activation.
- Adding/updating E2E tests for dashboard links and new pages.
- Fixing `run-tests.sh` corruption and adding pre-E2E setup steps
  (plugin reactivation, rewrite flush) to resolve 404s.
- Updating relevant documentation and memory bank files.

Testing:
- Integration tests pass.
- E2E tests pass for core functionality (login, dashboard, links).
- E2E tests for rendering of TEC CE shortcodes on new pages fail due
  to environment-specific issues (likely JS/timing) and are recommended
  to be skipped. Manual verification confirms pages render correctly."
2025-04-02 22:23:37 -03:00
bengizmo
0bcae8792c fix(tests): Resolve Task 4.7 integration test issues & UMB
- Debugged and resolved failures/skips in integration tests for Task 4.7 (Create/Modify Event Pages). The root cause was incorrect loading and initialization assumptions regarding The Events Calendar Community Events (TEC CE) within the PHPUnit environment.
- Corrected TEC CE loading in `tests/bootstrap.php` by:
    - Fixing the plugin filename (`tribe-community-events.php`).
    - Changing the loading hook from `muplugins_loaded` to `plugins_loaded`.
- Refactored `test-event-management-integration.php`:
    - Moved TEC CE availability checks from `wpSetUpBeforeClass` to `set_up` to avoid premature checks.
    - Removed skip logic based on incorrect assumptions about TEC CE's `$form_handler` property.
- Refactored `class-event-handler.php`:
    - Removed incorrect conditional delegation logic attempting to call a non-existent TEC CE method.
    - Fixed a PHP syntax error (missing closing brace) introduced during previous edits.
- Integration tests for Task 4.7 (`Event_Management_Integration_Test`) now pass successfully.
2025-04-02 07:02:06 -03:00
bengizmo
cdef12ee80 feat(events): Implement fallback logic and UI for Create/Modify Event page
- Refactored fallback submission logic in `class-event-handler.php` to remove `wp_die`/`exit` calls and use redirects for error handling, enabling proper unit testing.
- Implemented meta-data saving (dates, venue, organizer) in the fallback logic using `update_post_meta`.
- Updated unit tests (`test-event-management.php`) to remove `markTestIncomplete` calls related to handler errors and uncommented meta assertions. Unit tests for fallback logic now pass.
- Added Instructions section and Return to Dashboard button to the event form shortcode (`display_event_form_shortcode`).
- Applied basic theme styling classes (`ast-container`, `notice`, `ast-button`) to the event form.
- Updated `docs/implementation_plan.md` to reflect completion of tasks 4.1-4.5 and set focus to Task 5.

Refs: Task 4.1, 4.2, 4.3, 4.4, 4.5
2025-04-01 11:46:24 -03:00
bengizmo
8655c91003 feat(registration): Implement form, E2E tests, and debug processing
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
2025-03-30 22:20:40 -03:00
bengizmo
37f7b426b6 feat: Implement auto page creation & fix login E2E tests
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.
2025-03-28 17:18:21 -03:00