Implement Phase 7: Contact Form 7 Integration (v0.7.0)
All checks were successful
Create Release Package / build-release (push) Successful in 1m1s
All checks were successful
Create Release Package / build-release (push) Successful in 1m1s
Add custom CF7 form tags for booking requests: - [bnb_building_select] - Building filter dropdown - [bnb_room_select] - Room selection with capacity data - [bnb_date_checkin/checkout] - Date pickers with validation - [bnb_guests] - Guest count with capacity limits Features: - Server-side validation for all fields - Real-time AJAX availability checking - Automatic price calculation display - Booking creation on form submission - Guest record creation/linking - Custom mail tags for CF7 templates Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
45
CHANGELOG.md
45
CHANGELOG.md
@@ -5,6 +5,51 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [0.7.0] - 2026-02-03
|
||||
|
||||
### Added
|
||||
|
||||
- Contact Form 7 Integration:
|
||||
- New `src/Integration/CF7.php` class for CF7 integration
|
||||
- Custom form tags: `[bnb_building_select]`, `[bnb_room_select]`, `[bnb_date_checkin]`, `[bnb_date_checkout]`, `[bnb_guests]`
|
||||
- Server-side validation for all custom tags
|
||||
- Availability checking before form submission
|
||||
- Automatic booking creation on form submission with 'pending' status
|
||||
- Guest record creation/linking using existing `find_or_create_guest` pattern
|
||||
- Price calculation using existing Calculator class
|
||||
- Email notifications via existing EmailNotifier
|
||||
- CF7 Frontend Assets:
|
||||
- `assets/js/cf7-integration.js` for dynamic form behavior
|
||||
- Building-based room filtering
|
||||
- Date linking (checkout min = checkin + 1)
|
||||
- Capacity validation against selected room
|
||||
- AJAX availability checking with status display
|
||||
- Dynamic price calculation display
|
||||
- `assets/css/cf7-integration.css` for form styling
|
||||
- Availability status indicators (checking/available/unavailable)
|
||||
- Price display formatting
|
||||
- Capacity warning styling
|
||||
- Responsive design with dark mode support
|
||||
- Custom CF7 Mail Tags:
|
||||
- `[_bnb_booking_reference]` - Generated booking reference
|
||||
- `[_bnb_booking_id]` - Booking post ID
|
||||
- `[_bnb_room_name]` - Selected room title
|
||||
- `[_bnb_calculated_price]` - Formatted price
|
||||
- `[_bnb_nights]` - Number of nights
|
||||
- Form Type Detection:
|
||||
- Auto-detects booking forms by presence of `[bnb_room_select]`, `[bnb_date_checkin]`, `[bnb_date_checkout]`
|
||||
- CSS class `wp-bnb-booking-form` for explicit form type declaration
|
||||
- Inquiry forms use default CF7 email handling without booking creation
|
||||
|
||||
### Changed
|
||||
|
||||
- Plugin.php updated to conditionally initialize CF7 integration when CF7 is active
|
||||
- Frontend assets now include CF7-specific CSS and JavaScript when CF7 is detected
|
||||
|
||||
### Dependencies
|
||||
|
||||
- Contact Form 7 plugin required for CF7 integration features (optional)
|
||||
|
||||
## [0.6.1] - 2026-02-03
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user