Files
wp-bnb/CHANGELOG.md
magdev 81c97c31d7
All checks were successful
Create Release Package / build-release (push) Successful in 1m10s
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

26 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.10.0] - 2026-02-03

Added

  • REST API Infrastructure:
    • New src/Api/ directory with complete REST API implementation
    • ResponseFormatter.php - Standardized response formatting (success, collection, error responses)
    • RateLimiter.php - Transient-based rate limiting with tiered limits
    • Controllers/AbstractController.php - Base controller with common functionality
    • RestApi.php - Main registration class with namespace wp-bnb/v1
  • Buildings API:
    • GET /wp-bnb/v1/buildings - List buildings with pagination and search
    • GET /wp-bnb/v1/buildings/{id} - Get single building with address, contact, details
    • GET /wp-bnb/v1/buildings/{id}/rooms - Get rooms in a building with status filter
  • Rooms API:
    • GET /wp-bnb/v1/rooms - List rooms with filters (building, room_type, amenities, capacity, status)
    • GET /wp-bnb/v1/rooms/{id} - Get room details with gallery, pricing, amenities
    • GET /wp-bnb/v1/rooms/{id}/availability - Check availability with price calculation
    • GET /wp-bnb/v1/rooms/{id}/calendar - Get monthly calendar data
    • POST /wp-bnb/v1/availability/search - Search available rooms by date range and criteria
  • Bookings API:
    • POST /wp-bnb/v1/bookings - Create booking (public, creates pending status)
    • GET /wp-bnb/v1/bookings - List bookings with filters (admin)
    • GET /wp-bnb/v1/bookings/{id} - Get booking details (admin)
    • PATCH /wp-bnb/v1/bookings/{id} - Update booking (admin)
    • DELETE /wp-bnb/v1/bookings/{id} - Cancel booking (admin)
    • POST /wp-bnb/v1/bookings/{id}/confirm - Confirm pending booking (admin)
    • POST /wp-bnb/v1/bookings/{id}/check-in - Check in guest (admin)
    • POST /wp-bnb/v1/bookings/{id}/check-out - Check out guest (admin)
  • Guests API (admin only):
    • GET /wp-bnb/v1/guests - List guests with pagination
    • GET /wp-bnb/v1/guests/{id} - Get guest details (excludes encrypted ID numbers)
    • GET /wp-bnb/v1/guests/search - Search guests by name/email
    • GET /wp-bnb/v1/guests/{id}/bookings - Get guest's booking history
  • Services API:
    • GET /wp-bnb/v1/services - List active services with categories
    • GET /wp-bnb/v1/services/{id} - Get service details with pricing info
    • POST /wp-bnb/v1/services/{id}/calculate - Calculate service price for booking
  • Pricing API:
    • POST /wp-bnb/v1/pricing/calculate - Full price calculation with services
    • GET /wp-bnb/v1/pricing/seasons - Get configured seasons and pricing modifiers
  • API Settings tab in plugin settings:
    • Enable/disable REST API toggle
    • Enable/disable rate limiting toggle
    • Endpoint documentation table
    • Authentication instructions

Changed

  • Plugin.php updated to initialize REST API on rest_api_init hook
  • Settings page now has seven tabs: General, Pricing, License, Updates, Metrics, API
  • README.md updated with comprehensive REST API documentation

Security

  • Rate limiting: public (60/min), availability (30/min), booking (10/min), admin (120/min)
  • Admin endpoints require edit_posts capability
  • Supports WordPress Application Passwords for external API access
  • Client identification by user ID (authenticated) or IP address (anonymous)
  • Proxy/Cloudflare IP detection via X-Forwarded-For and CF-Connecting-IP headers

[0.9.0] - 2026-02-03

Added

  • Prometheus Metrics Integration:
    • New src/Integration/Prometheus.php class for metrics collection
    • Integration with wp-prometheus plugin via wp_prometheus_collect_metrics hook
    • Inventory metrics: buildings total, rooms by status, services by status
    • Booking metrics: bookings by status, check-ins/check-outs today, upcoming 7 days, avg duration
    • Guest metrics: total guests, guests by status, repeat guests, new guests this month
    • Occupancy metrics: current rate, monthly rate, occupied rooms, total bed capacity
    • Revenue metrics: this month, YTD, average booking value, services revenue
  • Grafana Dashboard:
    • Pre-configured dashboard at assets/grafana/wp-bnb-dashboard.json
    • Automatic registration with wp-prometheus dashboard provider
    • Occupancy gauges with color-coded thresholds
    • Pie charts for bookings, rooms, and guests by status
    • Revenue and guest statistics panels
    • Responsive grid layout with 24 panels
  • Settings page Metrics tab:
    • Enable/disable metrics collection toggle
    • WP Prometheus detection with status indicator
    • Complete metrics reference table
    • Dashboard file location and export info

Changed

  • Plugin.php updated to initialize Prometheus integration
  • Settings page now has six tabs: General, Pricing, License, Updates, Metrics

[0.8.0] - 2026-02-03

Added

  • Admin Dashboard with comprehensive statistics:
    • Occupancy overview card with current rate and comparison to last month
    • Revenue summary card with this month, YTD, and comparison
    • Bookings stat card with pending/confirmed counts
    • Guests stat card with total, new, and repeat counts
    • Today's Activity widget showing check-ins and check-outs
    • Upcoming Bookings widget (next 7 days)
    • Quick Actions widget for common tasks
    • Chart.js integration for visual trend charts:
      • Occupancy trend line chart (30 days)
      • Revenue trend bar chart (6 months)
  • Reports page with three report types:
    • Occupancy Report: by room, by building, with progress bars
    • Revenue Report: by room, by pricing tier, with averages
    • Guest Statistics: top guests, nationality breakdown
    • Date range filters (this month, last month, this year, custom)
  • Export functionality:
    • CSV export for all report types (native PHP)
    • PDF export using mPDF library with professional styling
  • New Composer dependency: mpdf/mpdf ^8.2 for PDF generation
  • Dashboard and Reports CSS styles in admin.css (~350 lines)
  • JavaScript chart initialization and report page handlers

Changed

  • Dashboard now uses dedicated src/Admin/Dashboard.php class
  • Admin menu now includes Reports submenu item
  • Asset enqueuing conditionally loads Chart.js on dashboard page

[0.7.2] - 2026-02-03

Fixed

  • CF7 tag generator buttons not appearing in admin form editor
    • Moved CF7 initialization from frontend-only to run in both admin and frontend contexts
    • Tag generators now properly register via wpcf7_admin_init hook

[0.7.1] - 2026-02-03

Added

  • CF7 Admin Tag Generator buttons:
    • Tag generator buttons appear in CF7 form editor for all WP BnB custom tags
    • BnB Building select with first option label configuration
    • BnB Room select with building field linking and price display options
    • BnB Check-in date with min/max advance booking days
    • BnB Check-out date with check-in field linking and min/max nights
    • BnB Guests count with room field linking and min/max/default values
    • All generators support id and class attribute configuration

[0.7.0] - 2026-02-03

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)

0.6.1 - 2026-02-03

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

0.6.0 - 2026-02-02

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)

0.5.0 - 2026-01-31

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

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

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