Files
wp-bnb/CHANGELOG.md
magdev 0c601df568
All checks were successful
Create Release Package / build-release (push) Successful in 1m5s
Add booking system with calendar and email notifications (v0.3.0)
- Booking Custom Post Type with full management features
- Room and guest relationship tracking
- Check-in/check-out date management with validation
- Booking status workflow (pending, confirmed, checked_in, checked_out, cancelled)
- Automatic price calculation using existing Calculator
- Availability system with real-time conflict detection
- AJAX endpoint for instant availability validation
- Calendar admin page with monthly view and room/building filters
- Color-coded booking status display with legend
- Email notifications for new bookings, confirmations, and cancellations
- HTML email templates with placeholder-based system
- Auto-generated booking references (BNB-YYYY-NNNNN)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 14:37:48 +01:00

198 lines
7.6 KiB
Markdown

# Changelog
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.3.0] - 2026-01-31
### Added
- Booking System with full management features:
- Custom Post Type: Bookings (`bnb_booking`)
- Room and guest relationship tracking
- Check-in/check-out date management
- Booking status workflow (pending, confirmed, checked_in, checked_out, cancelled)
- Status transitions with validation
- Automatic price calculation using existing Calculator
- Price override option for manual adjustments
- Guest information storage (name, email, phone, notes)
- Guest count tracking (adults, children)
- Internal notes field for staff
- Auto-generated booking references (BNB-YYYY-NNNNN)
- Availability System (`src/Booking/Availability.php`)
- Real-time availability checking
- Conflict detection for overlapping bookings
- AJAX endpoint for instant availability validation
- Calendar data generation for rooms and buildings
- Support for excluding booking from conflict check (for editing)
- Utility methods: get upcoming bookings, current bookings, today's check-ins/outs
- Calendar Admin Page (WP BnB > Calendar)
- Monthly calendar view with availability visualization
- Room and building filter dropdowns
- Color-coded booking status display
- Month navigation (previous/next/today)
- Click-to-edit booking functionality
- Hover tooltips with booking details
- Legend for status colors
- Single room and multi-room views
- Email Notifications (`src/Booking/EmailNotifier.php`)
- Admin notification for new bookings
- Guest confirmation email on booking confirmation
- Admin notification on booking confirmation
- Cancellation emails to guest and admin
- HTML email templates with styling
- Placeholder-based template system
- Filter hooks for customizing recipients, subject, and content
- Booking Admin List Enhancements
- Custom columns: room, guest, dates, nights, price, status
- Status badges with color coding
- Filter by room and status
- Sortable columns for dates, guest, status
- Price override indicator
- Booking Meta Boxes
- Room & Dates: room selection, date pickers, nights display, availability check
- Guest Information: contact details, guest count, notes
- Pricing: calculated price, breakdown display, recalculate button, override
- Status & Notes: status dropdown with preview, internal notes
### Changed
- Plugin.php enhanced with AJAX handlers and component initialization
- Admin JavaScript updated with booking form functionality
- Admin CSS updated with booking and calendar styles
- Asset enqueuing now includes Booking post type screens
### Security
- Conflict detection prevents double-booking
- Date validation ensures check-out is after check-in
- Status transition validation prevents invalid state changes
- Nonce verification on availability AJAX requests
- Capability checks on all booking operations
## [0.2.0] - 2026-01-31
### Added
- Pricing System with three tiers:
- Short-term (nightly) pricing for stays up to 6 nights
- Mid-term (weekly) pricing for stays 7-27 nights
- Long-term (monthly) pricing for stays 28+ nights
- PricingTier enum class with automatic tier detection
- Season class for seasonal pricing management
- Date range support (MM-DD format)
- Year-spanning seasons (e.g., winter holidays Dec-Jan)
- Price modifier (multiplier) per season
- Priority system for overlapping seasons
- Active/inactive status toggle
- Calculator class for price calculations
- Automatic tier detection based on stay duration
- Seasonal price adjustments
- Weekend surcharge support
- Price breakdown for detailed invoicing
- Currency formatting with symbol/suffix support
- Pricing meta box on Room edit screen
- Base prices for each tier (nightly, weekly, monthly)
- Weekend surcharge field
- Link to pricing settings
- Pricing Settings tab in plugin settings
- Configurable tier thresholds
- Weekend days selection
- Quick view of configured seasons
- Seasons admin page (WP BnB > Seasons)
- List view with all seasons
- Add/Edit season form
- Delete confirmation
- Create default seasons option
- Price column in room list admin
- Admin CSS for pricing UI
- Admin JavaScript for pricing interactions
### Changed
- Room post type now includes pricing fields
- Plugin settings page has new Pricing tab
- Enhanced asset localization with pricing i18n strings
## [0.1.0] - 2026-01-31
### Added
- Custom Post Type: Buildings (`bnb_building`)
- Address fields (street, city, state, ZIP, country)
- Contact information (phone, email, website)
- Building details (total rooms, floors, year built)
- Check-in/check-out time configuration
- Featured image support
- Custom admin columns (city, country, room count)
- Sortable columns
- Custom Post Type: Rooms (`bnb_room`)
- Building relationship (parent building selection)
- Room details (number, floor, size, capacity)
- Guest capacity (total, max adults, max children)
- Beds description and bathroom count
- Room status (available, occupied, maintenance, blocked)
- Image gallery with drag-and-drop sorting
- Featured image support
- Custom admin columns (building, room number, type, capacity, status)
- Building filter dropdown in admin list
- Custom Taxonomy: Room Types (`bnb_room_type`)
- Hierarchical (category-like) structure
- Default types: Standard, Superior, Suite, Family, Accessible, Apartment
- Subtypes: Single, Double, Twin, Junior Suite, Executive Suite
- Base capacity meta field
- Sort order meta field
- Custom Taxonomy: Amenities (`bnb_amenity`)
- Non-hierarchical (tag-like) structure
- Default amenities: WiFi, Parking, Breakfast, TV, A/C, Pet Friendly, etc.
- Dashicon selection for visual display
- Custom column showing icon
- Admin enhancements
- Gallery meta box with media library integration
- Status badges with color coding
- Custom title placeholders for each post type
- Post type edit screens with proper asset loading
### Changed
- Updated admin assets to handle post type edit screens
- Enhanced asset enqueuing to include jQuery UI Sortable for galleries
- Improved localization with additional i18n strings
## [0.0.1] - 2026-01-31
### Added
- Initial plugin structure and configuration
- Main plugin file with version checks (PHP 8.3+, WordPress 6.0+)
- Plugin singleton class with initialization hooks
- License Manager integration with SecureLicenseClient
- Admin menu with Dashboard and Settings pages
- Settings tabs for General and License configuration
- License validation and activation via AJAX
- Admin CSS and JavaScript assets
- Frontend CSS and JavaScript placeholders
- Composer configuration with dependencies:
- twig/twig ^3.0
- magdev/wc-licensed-product-client ^0.2
- PSR-4 autoloading for `Magdev\WpBnb` namespace
- Git submodule for license client library
- Gitea CI/CD workflow for automated releases
- Documentation: README.md, PLAN.md, CHANGELOG.md, CLAUDE.md
- Translation-ready strings with `wp-bnb` text domain
- Directory structure for templates, assets, and languages
### Security
- Nonce verification on all form submissions
- Capability checks for admin operations
- Input sanitization and output escaping
- Server secret masking in license settings
[0.3.0]: https://src.bundespruefstelle.ch/magdev/wp-bnb/releases/tag/v0.3.0
[0.2.0]: https://src.bundespruefstelle.ch/magdev/wp-bnb/releases/tag/v0.2.0
[0.1.0]: https://src.bundespruefstelle.ch/magdev/wp-bnb/releases/tag/v0.1.0
[0.0.1]: https://src.bundespruefstelle.ch/magdev/wp-bnb/releases/tag/v0.0.1