# WP BnB Management A comprehensive Bed & Breakfast management system for WordPress. Manage buildings, rooms, bookings, and guests all within your WordPress admin. ## Description WP BnB Management enables WordPress to act as a full management system for B&B hosts. It handles multiple buildings with multiple rooms each, bookings, and guest data required for room rentals. ### Key Features - **Multi-Property Support**: Manage multiple buildings, each with multiple rooms - **Flexible Pricing**: Configure short-term (nights), mid-term (weeks), and long-term (months) pricing - **Seasonal Pricing**: Set price modifiers for high/low seasons - **Booking Management**: Track reservations from inquiry to checkout - **Guest Management**: Store guest information securely with GDPR compliance - **Data Encryption**: Sensitive guest data (ID/passport) encrypted at rest - **Additional Services**: Offer extras like breakfast, parking, or tours - **Frontend Integration**: Gutenberg blocks, widgets, and shortcodes - **Auto-Updates**: Automatic update checks and installation from license server - **Development Mode**: License bypass for local development environments - **Contact Form 7 Integration**: Accept booking requests through forms (planned) ### Requirements - WordPress 6.0 or higher - PHP 8.3 or higher - Valid license key ## Installation 1. Download the latest release from the [releases page](https://src.bundespruefstelle.ch/magdev/wp-bnb/releases) 2. Upload the plugin to your `/wp-content/plugins/` directory 3. Activate the plugin through the 'Plugins' menu in WordPress 4. Go to **WP BnB → Settings → License** to enter your license key 5. Configure your business settings under **WP BnB → Settings** ## Configuration ### License Activation 1. Navigate to **WP BnB → Settings → License** 2. Enter your License Server URL 3. Enter your License Key (from purchase confirmation) 4. Enter the Server Secret (from purchase confirmation) 5. Click **Activate License** ### General Settings - **Business Name**: Your B&B business name - **Currency**: Select your preferred currency (CHF, EUR, USD, GBP) - **Business Address**: Street, city, postal code, country - **Contact Information**: Email, phone, website - **Social Media**: Facebook, Instagram, X (Twitter), LinkedIn, TripAdvisor ### Update Settings - **Update Notifications**: Enable/disable update notifications in WordPress - **Automatic Updates**: Enable/disable automatic plugin updates - **Check Frequency**: How often to check for updates (1-168 hours) ### Development Mode The plugin automatically detects local development environments and bypasses license validation. Supported environments: - localhost, 127.0.0.1, ::1 - Domains ending in .local, .test, .localhost, .dev, .ddev.site - Private IP ranges (10.x.x.x, 172.16-31.x.x, 192.168.x.x) ## Usage ### Managing Buildings 1. Go to **WP BnB → Buildings** 2. Click **Add New** 3. Enter building details (name, address, description) 4. Add featured image 5. Publish ### Managing Rooms 1. Go to **WP BnB → Rooms** 2. Click **Add New** 3. Select the parent building 4. Configure room details and pricing 5. Add amenities and room type 6. Publish ### Managing Bookings 1. Go to **WP BnB → Bookings** 2. View and manage all reservations 3. Update booking status as guests progress ### Managing Guests 1. Go to **WP BnB → Guests** 2. View guest records and booking history 3. Manage guest information ## Shortcodes Display buildings and rooms on your site using shortcodes: ```txt [bnb_buildings] - List all buildings (grid/list layout) [bnb_rooms building="123"] - List rooms, optionally filtered by building [bnb_room_search] - Interactive room search form [bnb_building id="123"] - Display a single building [bnb_room id="456"] - Display a single room with availability ``` ### Shortcode Attributes **`[bnb_buildings]`** and **`[bnb_rooms]`**: - `layout` - "grid" or "list" (default: grid) - `columns` - 1-4 columns (default: 3) - `limit` - Number of items (default: 12) - `orderby` - title, date, price, capacity (default: title) - `order` - ASC or DESC (default: ASC) **`[bnb_rooms]`** additional attributes: - `building` - Building ID to filter by - `room_type` - Room type slug to filter by - `amenities` - Comma-separated amenity slugs ## Gutenberg Blocks The following blocks are available in the block editor: - **Building** - Display a single building with details - **Room** - Display a single room with availability form - **Room Search** - Interactive search form with filters - **Buildings List** - Display buildings grid/list - **Rooms List** - Display rooms grid/list with filters ## Widgets Available sidebar widgets: - **Similar Rooms** - Show rooms from same building or room type - **Building Rooms** - List all rooms in a building - **Availability Calendar** - Mini calendar showing booking status ## Hooks and Filters Developers can customize behavior using these hooks: ```php // Modify price calculation add_filter( 'wp_bnb_calculate_price', function( $price, $room_id, $dates ) { // Custom pricing logic return $price; }, 10, 3 ); // Before booking creation add_action( 'wp_bnb_before_booking_create', function( $booking_data ) { // Custom validation or logging } ); ``` ## Frequently Asked Questions ### Do I need a license to use this plugin? Yes, a valid license is required to use the frontend features in production. The admin functionality works without a license for evaluation purposes. Local development environments (localhost, .local, .test, .dev domains) automatically bypass license validation. ### Can I manage multiple properties? Yes, you can create unlimited buildings and rooms. ### Is the plugin GDPR compliant? Yes, guest data can be exported and deleted on request, and consent is tracked appropriately. ### Does it integrate with WooCommerce? WooCommerce integration for payments is planned for a future release. ### How is guest data secured? Sensitive guest data like passport/ID numbers are encrypted using AES-256-CBC encryption before storage. The encryption key is derived from your WordPress AUTH_KEY, ensuring data is secure at rest. ## Changelog See [CHANGELOG.md](CHANGELOG.md) for a detailed list of changes. ## Support For support, please create an issue at: ## Author **Marco Graetsch** - Website: - Email: ## License GPL-2.0-or-later This plugin is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or any later version.