2026-01-31 13:15:13 +01:00
|
|
|
# WP BnB Implementation Plan
|
|
|
|
|
|
|
|
|
|
This document outlines the implementation plan for the WP BnB Management plugin.
|
|
|
|
|
|
|
|
|
|
## Phase 1: Foundation (v0.0.x - v0.1.0)
|
|
|
|
|
|
|
|
|
|
### v0.0.1 - Initial Setup (Current)
|
|
|
|
|
|
|
|
|
|
- [x] Project structure and configuration files
|
|
|
|
|
- [x] Composer dependencies (Twig, License Client)
|
|
|
|
|
- [x] Git submodule for license client
|
|
|
|
|
- [x] Main plugin file with version checks
|
|
|
|
|
- [x] Plugin singleton class
|
|
|
|
|
- [x] License Manager integration
|
|
|
|
|
- [x] Admin menu and settings pages
|
|
|
|
|
- [x] CI/CD pipeline for releases
|
|
|
|
|
- [x] Basic CSS and JS assets
|
|
|
|
|
- [x] Documentation (README, PLAN, CLAUDE)
|
|
|
|
|
|
2026-01-31 13:45:06 +01:00
|
|
|
### v0.1.0 - Core Data Structures (Current)
|
2026-01-31 13:15:13 +01:00
|
|
|
|
2026-01-31 13:45:06 +01:00
|
|
|
- [x] Custom Post Type: Buildings
|
2026-01-31 13:15:13 +01:00
|
|
|
- Meta fields: address, contact, description, images
|
|
|
|
|
- Admin columns and filtering
|
2026-01-31 13:45:06 +01:00
|
|
|
- Gutenberg block for display (planned for Phase 6)
|
2026-01-31 13:15:13 +01:00
|
|
|
|
2026-01-31 13:45:06 +01:00
|
|
|
- [x] Custom Post Type: Rooms
|
2026-01-31 13:15:13 +01:00
|
|
|
- Meta fields: building reference, capacity, amenities, images
|
|
|
|
|
- Relationship to Buildings (parent)
|
|
|
|
|
- Admin columns with building filter
|
2026-01-31 13:45:06 +01:00
|
|
|
- Gutenberg block for display (planned for Phase 6)
|
2026-01-31 13:15:13 +01:00
|
|
|
|
2026-01-31 13:45:06 +01:00
|
|
|
- [x] Custom Taxonomy: Room Types
|
2026-01-31 13:15:13 +01:00
|
|
|
- Standard, Suite, Family, Accessible, etc.
|
|
|
|
|
- Hierarchical structure
|
|
|
|
|
|
2026-01-31 13:45:06 +01:00
|
|
|
- [x] Custom Taxonomy: Amenities
|
2026-01-31 13:15:13 +01:00
|
|
|
- WiFi, Parking, Breakfast, etc.
|
|
|
|
|
- Non-hierarchical (tags)
|
|
|
|
|
|
2026-01-31 14:10:30 +01:00
|
|
|
## Phase 2: Pricing System (v0.2.0) - Complete
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Pricing Classes
|
|
|
|
|
|
2026-01-31 14:10:30 +01:00
|
|
|
- [x] Short-term pricing (per night, 1-6 nights)
|
|
|
|
|
- [x] Mid-term pricing (per week, 1-4 weeks)
|
|
|
|
|
- [x] Long-term pricing (per month, 1+ months)
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Price Configuration
|
|
|
|
|
|
2026-01-31 14:10:30 +01:00
|
|
|
- [x] Room-level price settings
|
|
|
|
|
- [x] Seasonal pricing periods
|
|
|
|
|
- [x] Weekend/weekday differentiation
|
|
|
|
|
- [x] Currency formatting and display
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Price Calculation
|
|
|
|
|
|
2026-01-31 14:10:30 +01:00
|
|
|
- [x] Automatic tier detection based on duration
|
|
|
|
|
- [x] Price breakdown display
|
|
|
|
|
- [x] Discount handling (via seasonal modifiers)
|
2026-01-31 13:15:13 +01:00
|
|
|
|
2026-01-31 14:37:48 +01:00
|
|
|
## Phase 3: Booking System (v0.3.0) - Complete
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Custom Post Type: Bookings
|
|
|
|
|
|
2026-01-31 14:37:48 +01:00
|
|
|
- [x] Guest reference
|
|
|
|
|
- [x] Room reference
|
|
|
|
|
- [x] Check-in/check-out dates
|
|
|
|
|
- [x] Status (pending, confirmed, checked-in, checked-out, cancelled)
|
|
|
|
|
- [x] Price calculation and storage
|
|
|
|
|
- [x] Notes field
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Calendar Integration
|
|
|
|
|
|
2026-01-31 14:37:48 +01:00
|
|
|
- [x] Availability calendar per room
|
|
|
|
|
- [x] Availability calendar per building
|
|
|
|
|
- [x] Date range picker for bookings
|
|
|
|
|
- [x] Conflict detection
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Booking Workflow
|
|
|
|
|
|
2026-01-31 14:37:48 +01:00
|
|
|
- [x] Booking creation (admin)
|
|
|
|
|
- [x] Status transitions
|
|
|
|
|
- [x] Email notifications
|
|
|
|
|
- [x] Booking confirmation
|
2026-01-31 13:15:13 +01:00
|
|
|
|
2026-01-31 15:19:56 +01:00
|
|
|
## Phase 4: Guest Management (v0.4.0) - Complete
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Custom Post Type: Guests
|
|
|
|
|
|
2026-01-31 15:19:56 +01:00
|
|
|
- [x] Personal information (name, email, phone)
|
|
|
|
|
- [x] Address fields
|
|
|
|
|
- [x] ID/Passport information
|
|
|
|
|
- [x] Booking history reference
|
|
|
|
|
- [x] Notes and preferences
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Privacy & Compliance
|
|
|
|
|
|
2026-01-31 15:19:56 +01:00
|
|
|
- [x] GDPR compliance features
|
|
|
|
|
- [x] Data export functionality
|
|
|
|
|
- [x] Data deletion on request
|
|
|
|
|
- [x] Consent tracking
|
2026-01-31 13:15:13 +01:00
|
|
|
|
2026-01-31 15:19:56 +01:00
|
|
|
## Phase 5: Additional Services (v0.5.0) - Complete
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Service Options
|
|
|
|
|
|
2026-01-31 15:19:56 +01:00
|
|
|
- [x] Custom Post Type: Services
|
|
|
|
|
- [x] Price per service (or included)
|
|
|
|
|
- [x] Per-booking or per-night pricing
|
|
|
|
|
- [x] Service categories
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Booking Services
|
|
|
|
|
|
2026-01-31 15:19:56 +01:00
|
|
|
- [x] Service selection during booking
|
|
|
|
|
- [x] Automatic price calculation
|
|
|
|
|
- [x] Service summary display
|
2026-01-31 13:15:13 +01:00
|
|
|
|
Add frontend features with search, shortcodes, widgets, and blocks (v0.6.0)
- Room search with availability, capacity, room type, amenity, price range, and building filters
- AJAX-powered search with pagination and load more
- Shortcodes: [bnb_buildings], [bnb_rooms], [bnb_room_search], [bnb_building], [bnb_room]
- Widgets: Similar Rooms, Building Rooms, Availability Calendar
- Gutenberg blocks: Building, Room, Room Search, Buildings List, Rooms List
- Frontend CSS with responsive design and CSS custom properties
- Frontend JavaScript with SearchForm, CalendarWidget, AvailabilityForm, PriceCalculator
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 14:08:11 +01:00
|
|
|
## Phase 6: Frontend Features (v0.6.0) - Complete
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Search & Filtering
|
|
|
|
|
|
Add frontend features with search, shortcodes, widgets, and blocks (v0.6.0)
- Room search with availability, capacity, room type, amenity, price range, and building filters
- AJAX-powered search with pagination and load more
- Shortcodes: [bnb_buildings], [bnb_rooms], [bnb_room_search], [bnb_building], [bnb_room]
- Widgets: Similar Rooms, Building Rooms, Availability Calendar
- Gutenberg blocks: Building, Room, Room Search, Buildings List, Rooms List
- Frontend CSS with responsive design and CSS custom properties
- Frontend JavaScript with SearchForm, CalendarWidget, AvailabilityForm, PriceCalculator
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 14:08:11 +01:00
|
|
|
- [x] Room search with filters
|
2026-01-31 13:15:13 +01:00
|
|
|
- Date range (availability)
|
|
|
|
|
- Capacity
|
|
|
|
|
- Room type
|
|
|
|
|
- Amenities
|
|
|
|
|
- Price range
|
|
|
|
|
- Building
|
|
|
|
|
|
|
|
|
|
### Display Components
|
|
|
|
|
|
Add frontend features with search, shortcodes, widgets, and blocks (v0.6.0)
- Room search with availability, capacity, room type, amenity, price range, and building filters
- AJAX-powered search with pagination and load more
- Shortcodes: [bnb_buildings], [bnb_rooms], [bnb_room_search], [bnb_building], [bnb_room]
- Widgets: Similar Rooms, Building Rooms, Availability Calendar
- Gutenberg blocks: Building, Room, Room Search, Buildings List, Rooms List
- Frontend CSS with responsive design and CSS custom properties
- Frontend JavaScript with SearchForm, CalendarWidget, AvailabilityForm, PriceCalculator
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 14:08:11 +01:00
|
|
|
- [x] Building list/grid shortcode
|
|
|
|
|
- [x] Room list/grid shortcode
|
|
|
|
|
- [x] Room detail template
|
|
|
|
|
- [x] Availability widget
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Gutenberg Blocks
|
|
|
|
|
|
Add frontend features with search, shortcodes, widgets, and blocks (v0.6.0)
- Room search with availability, capacity, room type, amenity, price range, and building filters
- AJAX-powered search with pagination and load more
- Shortcodes: [bnb_buildings], [bnb_rooms], [bnb_room_search], [bnb_building], [bnb_room]
- Widgets: Similar Rooms, Building Rooms, Availability Calendar
- Gutenberg blocks: Building, Room, Room Search, Buildings List, Rooms List
- Frontend CSS with responsive design and CSS custom properties
- Frontend JavaScript with SearchForm, CalendarWidget, AvailabilityForm, PriceCalculator
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 14:08:11 +01:00
|
|
|
- [x] Building block
|
|
|
|
|
- [x] Room block
|
|
|
|
|
- [x] Room search block
|
|
|
|
|
- [x] Buildings list block
|
|
|
|
|
- [x] Rooms list block
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Widgets
|
|
|
|
|
|
Add frontend features with search, shortcodes, widgets, and blocks (v0.6.0)
- Room search with availability, capacity, room type, amenity, price range, and building filters
- AJAX-powered search with pagination and load more
- Shortcodes: [bnb_buildings], [bnb_rooms], [bnb_room_search], [bnb_building], [bnb_room]
- Widgets: Similar Rooms, Building Rooms, Availability Calendar
- Gutenberg blocks: Building, Room, Room Search, Buildings List, Rooms List
- Frontend CSS with responsive design and CSS custom properties
- Frontend JavaScript with SearchForm, CalendarWidget, AvailabilityForm, PriceCalculator
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 14:08:11 +01:00
|
|
|
- [x] Similar rooms widget
|
|
|
|
|
- [x] Building rooms widget
|
|
|
|
|
- [x] Availability calendar widget
|
2026-01-31 13:15:13 +01:00
|
|
|
|
2026-02-03 16:30:30 +01:00
|
|
|
## Phase 7: Contact Form 7 Integration (v0.7.0) - Complete
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Booking Request Form
|
|
|
|
|
|
2026-02-03 16:30:30 +01:00
|
|
|
- [x] Custom CF7 tags for rooms/dates
|
|
|
|
|
- [x] Form validation
|
|
|
|
|
- [x] Booking creation on submission
|
|
|
|
|
- [x] Email notifications
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Inquiry Form
|
|
|
|
|
|
2026-02-03 16:30:30 +01:00
|
|
|
- [x] General inquiry handling
|
|
|
|
|
- [x] Room-specific inquiries
|
|
|
|
|
- [x] Auto-response templates (uses default CF7 mail templates)
|
2026-01-31 13:15:13 +01:00
|
|
|
|
2026-02-03 20:20:27 +01:00
|
|
|
## Phase 8: Dashboard & Reports (v0.8.0) - Complete
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Admin Dashboard
|
|
|
|
|
|
2026-02-03 20:20:27 +01:00
|
|
|
- [x] Occupancy overview
|
|
|
|
|
- [x] Upcoming check-ins/check-outs
|
|
|
|
|
- [x] Revenue summary
|
|
|
|
|
- [x] Quick actions
|
2026-01-31 13:15:13 +01:00
|
|
|
|
|
|
|
|
### Reports
|
|
|
|
|
|
2026-02-03 20:20:27 +01:00
|
|
|
- [x] Occupancy report
|
|
|
|
|
- [x] Revenue report
|
|
|
|
|
- [x] Guest statistics
|
|
|
|
|
- [x] Export functionality (CSV, PDF)
|
2026-01-31 13:15:13 +01:00
|
|
|
|
2026-02-03 20:40:54 +01:00
|
|
|
## Phase 9: Prometheus Metrics (v0.9.0) - Complete
|
|
|
|
|
|
|
|
|
|
- [x] Meaningful Metrics for this Plugin:
|
|
|
|
|
- Inventory: buildings, rooms by status, services by status
|
|
|
|
|
- Bookings: by status, check-ins/check-outs today, upcoming, avg duration
|
|
|
|
|
- Guests: total, by status, repeat guests, new this month
|
|
|
|
|
- Occupancy: current rate, monthly rate, occupied rooms, bed capacity
|
|
|
|
|
- Revenue: this month, YTD, average booking value, services revenue
|
|
|
|
|
- [x] Example Grafana Dashboard:
|
|
|
|
|
- Pre-configured dashboard JSON at `assets/grafana/wp-bnb-dashboard.json`
|
|
|
|
|
- Automatic registration with wp-prometheus
|
|
|
|
|
- 24 panels with gauges, pie charts, and stat displays
|
|
|
|
|
- [x] Update settings page to enable/disable metrics
|
2026-02-03 16:02:17 +01:00
|
|
|
|
Implement Phase 10: REST API Endpoints (v0.10.0)
- Add complete REST API infrastructure under src/Api/
- ResponseFormatter for standardized responses
- RateLimiter with tiered limits (public 60/min, availability 30/min, booking 10/min, admin 120/min)
- AbstractController base class with common functionality
- BuildingsController: list, get, rooms endpoints
- RoomsController: list, get, availability, calendar, search endpoints
- BookingsController: CRUD + confirm/check-in/check-out status transitions
- GuestsController: list, get, search, booking history (admin only)
- ServicesController: list, get, calculate endpoints
- PricingController: calculate, seasons endpoints
- API settings tab with enable/disable toggles
- Comprehensive API documentation in README
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 21:24:40 +01:00
|
|
|
### Phase 10: API Endpoints (v0.10.0) - Complete
|
2026-02-03 20:56:39 +01:00
|
|
|
|
Implement Phase 10: REST API Endpoints (v0.10.0)
- Add complete REST API infrastructure under src/Api/
- ResponseFormatter for standardized responses
- RateLimiter with tiered limits (public 60/min, availability 30/min, booking 10/min, admin 120/min)
- AbstractController base class with common functionality
- BuildingsController: list, get, rooms endpoints
- RoomsController: list, get, availability, calendar, search endpoints
- BookingsController: CRUD + confirm/check-in/check-out status transitions
- GuestsController: list, get, search, booking history (admin only)
- ServicesController: list, get, calculate endpoints
- PricingController: calculate, seasons endpoints
- API settings tab with enable/disable toggles
- Comprehensive API documentation in README
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 21:24:40 +01:00
|
|
|
- [x] REST API for rooms (list, details, availability, calendar)
|
|
|
|
|
- [x] REST API for availability (search available rooms)
|
|
|
|
|
- [x] REST API for bookings (CRUD, status transitions)
|
|
|
|
|
- [x] REST API for buildings, guests, services, pricing
|
|
|
|
|
- [x] Authentication (Application Passwords, edit_posts capability)
|
|
|
|
|
- [x] Transient-based rate limiting with tiered limits
|
|
|
|
|
- [x] API settings tab with enable/disable toggles
|
2026-02-03 20:56:39 +01:00
|
|
|
|
Add WooCommerce integration for payments, invoices, and order management (v0.11.0)
- Product sync: Virtual WC products for rooms with bidirectional linking
- Cart/Checkout: Booking data in cart items, availability validation, dynamic pricing
- Orders: Automatic booking creation on payment, status mapping, guest record creation
- Invoices: PDF generation via mPDF, auto-attach to emails, configurable numbering
- Refunds: Full refund cancels booking, partial refund records amount only
- Admin: Cross-linked columns and row actions between bookings and orders
- Settings: WooCommerce tab with subtabs (General, Products, Orders, Invoices)
- HPOS compatibility declared for High-Performance Order Storage
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 22:40:36 +01:00
|
|
|
### Phase 11: WooCommerce Integration (v0.11.0) - Complete
|
2026-02-03 21:59:18 +01:00
|
|
|
|
Add WooCommerce integration for payments, invoices, and order management (v0.11.0)
- Product sync: Virtual WC products for rooms with bidirectional linking
- Cart/Checkout: Booking data in cart items, availability validation, dynamic pricing
- Orders: Automatic booking creation on payment, status mapping, guest record creation
- Invoices: PDF generation via mPDF, auto-attach to emails, configurable numbering
- Refunds: Full refund cancels booking, partial refund records amount only
- Admin: Cross-linked columns and row actions between bookings and orders
- Settings: WooCommerce tab with subtabs (General, Products, Orders, Invoices)
- HPOS compatibility declared for High-Performance Order Storage
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 22:40:36 +01:00
|
|
|
- [x] Payment processing
|
|
|
|
|
- [x] Invoice generation
|
|
|
|
|
- [x] Order management
|
|
|
|
|
- [x] Refund handling
|
2026-02-03 21:59:18 +01:00
|
|
|
|
2026-02-04 09:44:23 +01:00
|
|
|
## Phase 12: Security Audit (v0.12.0) - Complete
|
2026-02-03 16:10:19 +01:00
|
|
|
|
2026-02-04 09:44:23 +01:00
|
|
|
- [x] Check for WordPress best-practices
|
|
|
|
|
- [x] Review the code for OWASP Top 10, including XSS, CSRF, SQLi and other critical threats
|
|
|
|
|
- [x] Test the API-Endpoints against a local live system under <http://localhost:9080/> for common vulnerabilities
|
|
|
|
|
- [x] Fix bugs discovered during security audit
|
2026-02-03 16:10:19 +01:00
|
|
|
|
2026-01-31 13:15:13 +01:00
|
|
|
## Future Considerations (v1.0.0+)
|
|
|
|
|
|
|
|
|
|
### Multi-language Support
|
|
|
|
|
|
|
|
|
|
- [ ] Full translation support
|
|
|
|
|
- [ ] WPML compatibility
|
|
|
|
|
- [ ] Polylang compatibility
|
|
|
|
|
|
|
|
|
|
### Advanced Features
|
|
|
|
|
|
|
|
|
|
- [ ] Channel manager integration
|
|
|
|
|
- [ ] iCal sync
|
|
|
|
|
- [ ] Automated pricing rules
|
|
|
|
|
- [ ] Loyalty program support
|
|
|
|
|
|
|
|
|
|
## Technical Architecture
|
|
|
|
|
|
|
|
|
|
### Directory Structure
|
|
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
wp-bnb/
|
2026-02-03 22:04:42 +01:00
|
|
|
├── wp-bnb.php # Main plugin file (entry point)
|
|
|
|
|
├── composer.json # Composer configuration
|
|
|
|
|
├── composer.lock # Dependency lock file
|
|
|
|
|
├── CHANGELOG.md # Version history
|
|
|
|
|
├── CLAUDE.md # AI assistant documentation
|
|
|
|
|
├── PLAN.md # Implementation roadmap
|
|
|
|
|
├── README.md # User documentation
|
|
|
|
|
├── .editorconfig # Editor configuration
|
|
|
|
|
├── .gitignore # Git ignore patterns
|
|
|
|
|
├── .gitmodules # Git submodule configuration
|
|
|
|
|
├── .gitea/
|
|
|
|
|
│ └── workflows/
|
|
|
|
|
│ └── release.yml # CI/CD release pipeline
|
|
|
|
|
├── src/ # PHP source (PSR-4: Magdev\WpBnb)
|
|
|
|
|
│ ├── Plugin.php # Main plugin singleton
|
|
|
|
|
│ ├── Admin/ # Admin pages
|
|
|
|
|
│ │ ├── Calendar.php # Availability calendar page
|
|
|
|
|
│ │ ├── Dashboard.php # Dashboard page with statistics
|
|
|
|
|
│ │ ├── Reports.php # Reports page with exports
|
|
|
|
|
│ │ └── Seasons.php # Seasons management page
|
|
|
|
|
│ ├── Api/ # REST API (v0.10.0+)
|
|
|
|
|
│ │ ├── RestApi.php # Main API registration
|
|
|
|
|
│ │ ├── RateLimiter.php # Transient-based rate limiting
|
|
|
|
|
│ │ ├── ResponseFormatter.php # Standardized responses
|
|
|
|
|
│ │ └── Controllers/ # API endpoint controllers
|
|
|
|
|
│ │ ├── AbstractController.php
|
|
|
|
|
│ │ ├── BookingsController.php
|
|
|
|
|
│ │ ├── BuildingsController.php
|
|
|
|
|
│ │ ├── GuestsController.php
|
|
|
|
|
│ │ ├── PricingController.php
|
|
|
|
|
│ │ ├── RoomsController.php
|
|
|
|
|
│ │ └── ServicesController.php
|
|
|
|
|
│ ├── Blocks/ # Gutenberg blocks
|
|
|
|
|
│ │ └── BlockRegistrar.php # Block registration and rendering
|
|
|
|
|
│ ├── Booking/ # Booking logic
|
|
|
|
|
│ │ ├── Availability.php # Availability checking
|
|
|
|
|
│ │ └── EmailNotifier.php # Email notifications
|
|
|
|
|
│ ├── Frontend/ # Frontend components
|
|
|
|
|
│ │ ├── Search.php # Room search and AJAX handlers
|
|
|
|
|
│ │ ├── Shortcodes.php # All shortcode handlers
|
|
|
|
|
│ │ └── Widgets/ # WordPress widgets
|
|
|
|
|
│ │ ├── AvailabilityCalendar.php
|
|
|
|
|
│ │ ├── BuildingRooms.php
|
|
|
|
|
│ │ └── SimilarRooms.php
|
|
|
|
|
│ ├── Integration/ # Third-party integrations
|
|
|
|
|
│ │ ├── CF7.php # Contact Form 7 integration
|
|
|
|
|
│ │ └── Prometheus.php # Prometheus metrics
|
2026-01-31 13:15:13 +01:00
|
|
|
│ ├── License/ # License management
|
2026-02-03 22:04:42 +01:00
|
|
|
│ │ ├── Manager.php # License validation and activation
|
|
|
|
|
│ │ └── Updater.php # Auto-update system
|
2026-01-31 13:15:13 +01:00
|
|
|
│ ├── PostTypes/ # Custom post types
|
|
|
|
|
│ │ ├── Booking.php
|
|
|
|
|
│ │ ├── Building.php
|
2026-02-03 22:04:42 +01:00
|
|
|
│ │ ├── Guest.php
|
2026-01-31 13:15:13 +01:00
|
|
|
│ │ ├── Room.php
|
2026-02-03 22:04:42 +01:00
|
|
|
│ │ └── Service.php
|
2026-01-31 13:15:13 +01:00
|
|
|
│ ├── Pricing/ # Pricing logic
|
2026-02-03 22:04:42 +01:00
|
|
|
│ │ ├── Calculator.php # Price calculation
|
|
|
|
|
│ │ ├── PricingTier.php # Pricing tier enum
|
|
|
|
|
│ │ └── Season.php # Seasonal pricing
|
|
|
|
|
│ ├── Privacy/ # Privacy & GDPR
|
|
|
|
|
│ │ └── Manager.php # Data export/deletion
|
|
|
|
|
│ └── Taxonomies/ # Custom taxonomies
|
|
|
|
|
│ ├── Amenity.php # Amenities (tags)
|
|
|
|
|
│ ├── RoomType.php # Room types (categories)
|
|
|
|
|
│ └── ServiceCategory.php # Service categories
|
2026-01-31 13:15:13 +01:00
|
|
|
├── assets/ # CSS, JS, images
|
|
|
|
|
│ ├── css/
|
2026-02-03 22:04:42 +01:00
|
|
|
│ │ ├── admin.css # Admin styles
|
|
|
|
|
│ │ ├── blocks-editor.css # Gutenberg editor styles
|
|
|
|
|
│ │ ├── cf7-integration.css # CF7 form styles
|
|
|
|
|
│ │ └── frontend.css # Frontend styles
|
|
|
|
|
│ ├── grafana/
|
|
|
|
|
│ │ └── wp-bnb-dashboard.json # Pre-configured Grafana dashboard
|
|
|
|
|
│ └── js/
|
|
|
|
|
│ ├── admin.js # Admin scripts
|
|
|
|
|
│ ├── blocks-editor.js # Gutenberg editor scripts
|
|
|
|
|
│ ├── cf7-integration.js # CF7 form scripts
|
|
|
|
|
│ └── frontend.js # Frontend scripts
|
|
|
|
|
├── languages/ # Translation files (.pot/.po/.mo)
|
2026-01-31 13:15:13 +01:00
|
|
|
├── lib/ # Git submodules
|
|
|
|
|
│ └── wc-licensed-product-client/
|
2026-02-03 22:04:42 +01:00
|
|
|
├── releases/ # Release packages (git-ignored)
|
|
|
|
|
├── templates/ # Twig templates (reserved for future)
|
2026-01-31 13:15:13 +01:00
|
|
|
└── vendor/ # Composer dependencies
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Database Tables (Custom)
|
|
|
|
|
|
|
|
|
|
For performance with large datasets, custom tables may be added:
|
|
|
|
|
|
|
|
|
|
- `{prefix}bnb_availability` - Room availability cache
|
|
|
|
|
- `{prefix}bnb_prices` - Price history and seasonal rates
|
|
|
|
|
- `{prefix}bnb_booking_services` - Many-to-many booking/service relation
|
|
|
|
|
|
|
|
|
|
### Hooks and Filters
|
|
|
|
|
|
|
|
|
|
The plugin will provide extensive hooks for customization:
|
|
|
|
|
|
|
|
|
|
- `wp_bnb_before_booking_create`
|
|
|
|
|
- `wp_bnb_after_booking_create`
|
|
|
|
|
- `wp_bnb_calculate_price`
|
|
|
|
|
- `wp_bnb_room_availability`
|
|
|
|
|
- `wp_bnb_booking_statuses`
|
|
|
|
|
- `wp_bnb_email_templates`
|
|
|
|
|
|
|
|
|
|
## Version Milestones
|
|
|
|
|
|
2026-02-03 21:59:18 +01:00
|
|
|
| Version | Focus | Target |
|
|
|
|
|
| ------- | ----------------------- | -------- |
|
|
|
|
|
| 0.0.1 | Initial setup | Complete |
|
|
|
|
|
| 0.1.0 | Data structures | Complete |
|
|
|
|
|
| 0.2.0 | Pricing | Complete |
|
|
|
|
|
| 0.3.0 | Bookings | Complete |
|
|
|
|
|
| 0.4.0 | Guests | Complete |
|
|
|
|
|
| 0.5.0 | Services | Complete |
|
|
|
|
|
| 0.6.0 | Frontend | Complete |
|
|
|
|
|
| 0.7.0 | CF7 Integration | Complete |
|
|
|
|
|
| 0.8.0 | Dashboard | Complete |
|
|
|
|
|
| 0.9.0 | Prometheus Metrics | Complete |
|
|
|
|
|
| 0.10.0 | API Endpoints | Complete |
|
Add WooCommerce integration for payments, invoices, and order management (v0.11.0)
- Product sync: Virtual WC products for rooms with bidirectional linking
- Cart/Checkout: Booking data in cart items, availability validation, dynamic pricing
- Orders: Automatic booking creation on payment, status mapping, guest record creation
- Invoices: PDF generation via mPDF, auto-attach to emails, configurable numbering
- Refunds: Full refund cancels booking, partial refund records amount only
- Admin: Cross-linked columns and row actions between bookings and orders
- Settings: WooCommerce tab with subtabs (General, Products, Orders, Invoices)
- HPOS compatibility declared for High-Performance Order Storage
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 22:40:36 +01:00
|
|
|
| 0.11.0 | WooCommerce Integration | Complete |
|
2026-02-04 09:44:23 +01:00
|
|
|
| 0.12.0 | Security Audit | Complete |
|
2026-02-03 21:59:18 +01:00
|
|
|
| 1.0.0 | Stable Release | TBD |
|