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

7.6 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

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