• v0.7.0 28350aabfa

    Release 0.7.0
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m1s
    Stable

    magdev released this 2026-02-03 15:30:41 +00:00 | 22 commits to main since this release

    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)
    Downloads
  • v0.6.1 13ba264431

    Release 0.6.1
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m1s
    Stable

    magdev released this 2026-02-03 14:18:50 +00:00 | 26 commits to main since this release

    Added

    • Auto-Update System:
      • New src/License/Updater.php class for WordPress update integration
      • Hooks into pre_set_site_transient_update_plugins for update detection
      • Plugin info modal via plugins_api filter
      • Configurable update check frequency (1-168 hours)
      • Option to enable/disable update notifications
      • Option to enable/disable automatic updates
      • AJAX endpoint for manual update check
      • Automatic cache clearing when license settings change
    • Updates Tab in Settings:
      • Enable/disable update notifications toggle
      • Enable/disable automatic updates toggle
      • Update check frequency setting
      • Manual "Check for Updates" button
      • Display of last check timestamp and current version
    • Localhost Development Mode:
      • License bypass for local development environments
      • Detects: localhost, 127.0.0.1, ::1, .local/.test/.localhost/.dev/.ddev.site domains
      • Private IP range detection (10.x.x.x, 172.16-31.x.x, 192.168.x.x)
      • "Development Mode" notice on Dashboard and License settings page
    • Extended General Settings:
      • Business address fields (street, city, postal code, country)
      • Contact fields (email, phone, website)
      • Social media fields (Facebook, Instagram, X/Twitter, LinkedIn, TripAdvisor)
    • Pricing Settings Subtabs:
      • Split into three subtabs: Pricing Tiers, Weekend Days, Seasons
      • Each subtab has its own save button
      • Seasons subtab shows priority column and link to Seasons Manager
    • Guest Data Encryption:
      • AES-256-CBC encryption for sensitive data (ID/passport numbers)
      • Uses WordPress AUTH_KEY for encryption key derivation
      • encrypt() and decrypt() methods in Guest class
      • Backward compatible with legacy unencrypted data
      • Security notice displayed in Identification meta box
    • Guest Auto-Creation from Booking:
      • When new guest data is entered in booking form, guest record is automatically created
      • Links booking to the new guest via guest_id meta
      • Prevents duplicate guest entries

    Changed

    • Admin submenu reordered for better organization:
      • Dashboard at top, Settings at bottom
      • Logical grouping: Buildings, Rooms, Bookings, Guests, Services, Calendar, Seasons
    • Booking title auto-generates with guest name and dates (room number removed)
    • Disabled Gutenberg block editor for form-based post types:
      • Service, Guest, and Booking now use classic editor
      • Meta boxes display properly instead of being hidden at bottom
      • Form-based interfaces more appropriate than block editor for data entry
    • Settings tabs now flush with tab content (no gap)

    Fixed

    • Fixed Booking admin issues with auto-draft status causing type errors
    • Fixed guest dropdown to always load existing guests
    • Fixed booking history display on Guest edit page
    • Fixed service pricing meta box not displaying radio buttons (Gutenberg hiding meta boxes)

    Security

    • Guest ID/passport numbers encrypted at rest using AES-256-CBC
    • Random IV generation for each encryption operation
    • Secure key derivation from WordPress AUTH_KEY
    Downloads
  • v0.6.0 864b8b2869

    Release 0.6.0
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m20s
    Stable

    magdev released this 2026-02-02 13:08:20 +00:00 | 29 commits to main since this release

    Added

    • Frontend Features System:
      • Room search with multiple filters (availability, capacity, room type, amenities, price range, building)
      • AJAX-powered search with pagination and "Load More" functionality
      • Date validation (check-out after check-in, minimum today)
      • Real-time availability checking on single room pages
      • Price calculator with breakdown display
    • Shortcodes:
      • [bnb_buildings] - Display buildings list/grid with filtering and sorting
      • [bnb_rooms] - Display rooms list/grid with multiple filter options
      • [bnb_room_search] - Interactive room search form with results
      • [bnb_building id="X"] - Display single building details
      • [bnb_room id="X"] - Display single room details with availability form
    • WordPress Widgets:
      • Similar Rooms widget (shows rooms from same building/type)
      • Building Rooms widget (lists all rooms in a building)
      • Availability Calendar widget (mini calendar with booking status)
    • Gutenberg Blocks:
      • Building block with ID selector
      • Room block with ID selector
      • Room Search block with filter presets
      • Buildings List block with layout options
      • Rooms List block with filter options
      • Server-side rendered blocks for consistent output
    • Frontend Search Class (src/Frontend/Search.php):
      • Core search functionality with availability filtering
      • Price range filtering with Calculator integration
      • Pagination support
      • AJAX endpoints: search_rooms, get_availability, get_calendar, calculate_price
      • Room data formatting for JSON responses
    • Frontend Shortcodes Class (src/Frontend/Shortcodes.php):
      • All shortcode registration and handlers
      • Grid/list layout support
      • Column configuration (1-4 columns)
      • Sorting options (title, date, price, capacity)
      • Limit and offset support
    • Block Registrar Class (src/Blocks/BlockRegistrar.php):
      • Gutenberg block registration
      • Block editor assets (CSS/JS)
      • Server-side render callbacks
      • Block data localization for editor
    • Frontend Assets:
      • Comprehensive CSS with CSS custom properties for theming
      • Building and room card styles
      • Search form and results styling
      • Calendar widget styling with availability states
      • Responsive design (breakpoints: 480px, 768px, 1024px)
      • JavaScript with SearchForm, CalendarWidget, AvailabilityForm, PriceCalculator classes
      • AJAX integration with proper error handling
      • XSS-safe DOM construction (no innerHTML with user data)

    Changed

    • Plugin.php updated with frontend component initialization
    • Frontend assets now include localized script data with AJAX URL, nonce, and i18n strings
    • Widget registration added to init_frontend() method
    • Search, Shortcodes, and BlockRegistrar initialized when license is valid

    Security

    • AJAX nonce verification on all frontend requests
    • Input sanitization on all search parameters
    • Output escaping in shortcode and widget templates
    • XSS prevention in JavaScript (textContent instead of innerHTML)
    Downloads
  • v0.5.0 05f24fdec7

    Release 0.5.0
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m0s
    Stable

    magdev released this 2026-01-31 14:20:04 +00:00 | 30 commits to main since this release

    Added

    • Additional Services System:
      • Custom Post Type: Services (bnb_service)
      • Service pricing types: Included (free), Per Booking (one-time), Per Night
      • Service configuration: price, status, sort order, max quantity
      • Custom admin columns with pricing type icons and status badges
      • Filters by status and pricing type
      • Service data helper methods for pricing calculations
    • Service Categories Taxonomy (bnb_service_category)
      • Non-hierarchical (tag-like) structure
      • Icon selection per category
      • Sort order for custom ordering
      • Default categories: Food & Dining, Transportation, Wellness & Spa, Activities, Housekeeping
    • Booking-Services Integration:
      • Services meta box in Booking edit screen
      • Checkbox-based service selection
      • Quantity input for services with max_quantity > 1
      • Real-time price calculation per service based on nights
      • Services total display
      • Price breakdown shows services cost
      • Grand total (room + services) in admin list and pricing meta box
    • Admin UI Enhancements:
      • Service selector with pricing type indicators
      • Included services badge
      • Per-night price suffix display
      • Service line totals with quantity support
      • Services total summary in booking
      • CSS styles for all service-related components
      • JavaScript for dynamic service pricing calculations

    Changed

    • Plugin.php updated to register Service CPT and ServiceCategory taxonomy
    • Admin assets enqueued for Service post type screens
    • Booking admin list shows total price including services
    • Booking pricing meta box displays services breakdown and grand total
    • Admin JavaScript extended with service pricing and selection logic
    • Admin CSS includes comprehensive service styling
    Downloads
  • v0.4.0 aab3a4d1aa

    Release 0.4.0
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m26s
    Stable

    magdev released this 2026-01-31 13:59:49 +00:00 | 31 commits to main since this release

    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
    Downloads
  • v0.3.0 0c601df568

    Release 0.3.0
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m5s
    Stable

    magdev released this 2026-01-31 13:37:56 +00:00 | 33 commits to main since this release

    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
    Downloads
  • v0.2.0 dabfe1e826

    Release 0.2.0
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m19s
    Stable

    magdev released this 2026-01-31 13:10:40 +00:00 | 34 commits to main since this release

    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
    Downloads
  • v0.1.0 f24a347bb1

    Release 0.1.0
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m6s
    Stable

    magdev released this 2026-01-31 12:45:14 +00:00 | 35 commits to main since this release

    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
    Downloads
  • v0.0.1 d36b6c3dd9

    Release 0.0.1
    All checks were successful
    Create Release Package / build-release (push) Successful in 1m21s
    Stable

    magdev released this 2026-01-31 12:15:35 +00:00 | 36 commits to main since this release

    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
    Downloads