2026-01-31 13:15:13 +01:00
|
|
|
# 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).
|
|
|
|
|
|
2026-01-31 14:59:43 +01:00
|
|
|
## [0.4.0] - 2026-01-31
|
|
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
|
|
- Guest Management System with dedicated CPT:
|
|
|
|
|
- Custom Post Type: Guests (`bnb_guest`)
|
|
|
|
|
- Personal information fields (name, email, phone, DOB, nationality)
|
|
|
|
|
- Address fields (street, city, postal code, country)
|
|
|
|
|
- Identification fields (ID type, number, expiry date)
|
|
|
|
|
- Guest status tracking (active, inactive, blocked)
|
|
|
|
|
- Internal notes and preferences
|
|
|
|
|
- GDPR consent tracking (marketing, data processing, consent date)
|
|
|
|
|
- Booking history display with statistics
|
|
|
|
|
- Helper methods: `get_by_email()`, `get_bookings()`, `get_booking_count()`, `get_total_spent()`, `get_full_name()`, `get_formatted_address()`
|
|
|
|
|
- Guest-Booking Integration:
|
|
|
|
|
- Guest search by email/name with AJAX autocomplete
|
|
|
|
|
- Link existing guests to bookings
|
|
|
|
|
- Create new guests from booking form
|
|
|
|
|
- Guest profile link in booking admin
|
|
|
|
|
- Automatic guest data sync when linked
|
|
|
|
|
- Backward compatibility for legacy bookings without guest_id
|
|
|
|
|
- GDPR/Privacy Compliance (`src/Privacy/Manager.php`):
|
|
|
|
|
- WordPress Privacy API integration
|
|
|
|
|
- Personal data exporter (guest profile + booking history)
|
|
|
|
|
- Personal data eraser with anonymization option
|
|
|
|
|
- Privacy policy content suggestion
|
|
|
|
|
- Support for WordPress Tools > Export/Erase Personal Data
|
|
|
|
|
- Guest anonymization (replaces PII with placeholder data)
|
|
|
|
|
- Booking anonymization for connected bookings
|
|
|
|
|
- Email Notifier Enhancements:
|
|
|
|
|
- Guest data retrieval from Guest CPT when available
|
|
|
|
|
- Fallback to booking meta for legacy bookings
|
|
|
|
|
- New placeholders: `{guest_first_name}`, `{guest_last_name}`, `{guest_full_address}`
|
|
|
|
|
- Admin UI Styles:
|
|
|
|
|
- Guest search container and results styling
|
|
|
|
|
- Linked guest display card
|
|
|
|
|
- Booking history table in Guest
|
|
|
|
|
- Consent status indicators
|
|
|
|
|
- Guest status badges
|
|
|
|
|
- Privacy action buttons
|
|
|
|
|
- Anonymized data display
|
|
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
|
|
- Booking meta box updated with guest search/link functionality
|
|
|
|
|
- Plugin.php now initializes Guest CPT and Privacy Manager
|
|
|
|
|
- Admin JavaScript includes guest search with debounce
|
|
|
|
|
- Admin CSS extended with Guest and Privacy styles
|
|
|
|
|
|
|
|
|
|
### Security
|
|
|
|
|
|
|
|
|
|
- Guest email used as unique identifier for deduplication
|
|
|
|
|
- GDPR-compliant data export and erasure
|
|
|
|
|
- Consent tracking with timestamps
|
|
|
|
|
- Anonymization preserves booking records while removing PII
|
|
|
|
|
- AJAX endpoints secured with nonce verification
|
|
|
|
|
|
2026-01-31 14:37:48 +01:00
|
|
|
## [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
|
|
|
|
|
|
2026-01-31 14:10:30 +01:00
|
|
|
## [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
|
|
|
|
|
|
2026-01-31 13:45:06 +01:00
|
|
|
## [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
|
|
|
|
|
|
2026-01-31 13:15:13 +01:00
|
|
|
## [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
|
|
|
|
|
|
2026-01-31 14:59:43 +01:00
|
|
|
[0.4.0]: https://src.bundespruefstelle.ch/magdev/wp-bnb/releases/tag/v0.4.0
|
2026-01-31 14:37:48 +01:00
|
|
|
[0.3.0]: https://src.bundespruefstelle.ch/magdev/wp-bnb/releases/tag/v0.3.0
|
2026-01-31 14:10:30 +01:00
|
|
|
[0.2.0]: https://src.bundespruefstelle.ch/magdev/wp-bnb/releases/tag/v0.2.0
|
2026-01-31 13:45:06 +01:00
|
|
|
[0.1.0]: https://src.bundespruefstelle.ch/magdev/wp-bnb/releases/tag/v0.1.0
|
2026-01-31 13:15:13 +01:00
|
|
|
[0.0.1]: https://src.bundespruefstelle.ch/magdev/wp-bnb/releases/tag/v0.0.1
|