WooCommerce Rentals Bookings Dokan – Variations Deposits Calendar

Plugin Banner

WooCommerce Rentals Bookings Dokan – Variations Deposits Calendar

by wahra

Download
Description

WooCommerce Rentals Bookings Dokan is a full-featured rental and booking plugin for WordPress. Whether you run a single-vendor WooCommerce store or a multi-vendor Dokan marketplace, this plugin gives you everything you need to rent out accommodations, vehicles, equipment, spaces, services, and products.

Why Choose This WooCommerce Booking Plugin?

Most WooCommerce booking plugins only handle one rental model. This plugin supports six platform categories – accommodation, vehicle, equipment, space, service, and product – each with its own booking modes, pricing rules, and payment settings. You get a single plugin that replaces multiple booking extensions.

Works With WooCommerce Alone (Solo Mode)

You do not need Dokan or any marketplace plugin. Install the plugin alongside WooCommerce and you get:

  • A Rentals menu in wp-admin with Bookings, Wizard, Calendar, Analytics, and Settings pages
  • A dedicated Rental product data tab on the WooCommerce Edit Product screen
  • A Dashboard widget showing booking stats and revenue at a glance
  • Full REST API for headless or custom frontend integrations

Works With Dokan Marketplace (Multi-Vendor Mode)

When Dokan Lite or Dokan Pro is active the plugin automatically switches to multi-vendor mode:

  • Vendors get a Booking Wizard in their Dokan frontend dashboard to create rental offers
  • Each vendor sees only their own bookings, calendar, analytics, and settings
  • Platform admins control global pricing rules, payment policies, and vendor permissions per category
  • Compatible with Dokan Lite 4.x and Dokan Pro 4.x

Mobile-First Booking Wizard

The vendor booking wizard is a React single-page application with 8 guided steps:

  1. Welcome – introduction and resume previous draft
  2. Offer Type – select platform category (accommodation, vehicle, equipment, space, service, product)
  3. Inventory – pick an existing WooCommerce or Dokan product
  4. Availability – set schedule, time slots, and blackout dates
  5. Pricing – base price and dynamic pricing rules (weekend, long-stay, early-bird, last-minute, seasonal)
  6. Payment – deposit amount, security deposit, balance collection method
  7. Media – photos and description
  8. Publish – review and go live

The wizard auto-saves drafts so vendors never lose progress. It is fully responsive and works on phones and tablets.

Availability Calendar

An interactive FullCalendar view lets vendors see all their bookings at a glance. Colour-coded statuses (pending, confirmed, in-progress, returned, completed, cancelled) make it easy to spot what needs attention. The calendar supports day, week, and month views.

Dynamic Pricing Rules

Set flexible pricing per platform category:

  • Weekend pricing – different rates for Friday/Saturday/Sunday
  • Long-stay discounts – percentage off for bookings longer than N days
  • Early-bird discounts – reward customers who book far in advance
  • Last-minute discounts – fill empty slots with time-sensitive deals
  • Seasonal pricing – date-range based rate adjustments (accommodation and space categories)

All pricing rules are configured by the platform admin and optionally overridden by vendors when permissions allow.

Deposits and Security Deposits

Collect payments in stages to reduce risk for both renters and owners:

  • Deposit – a percentage or fixed amount collected at checkout to confirm the booking
  • Security deposit – an authorisation hold or capture to cover potential damage
  • Balance – the remaining amount, collectible online, by bank transfer, cash on delivery, or other methods

Payment statuses are tracked per booking: pending, paid, refunded, released, forfeited, partial. Vendors can update payment fields and add notes through the vendor dashboard.

Full Booking Lifecycle

Every booking follows a clear status flow:

pending confirmed checked_in checked_out completed

Automated cron jobs handle routine transitions:

  • Auto start – confirmed bookings move to checked_in when the start date arrives
  • Auto return – checked_in bookings move to checked_out when the end date passes
  • Auto cancel – pending bookings are cancelled if the start date passes without confirmation

Vendors can also trigger transitions manually: confirm, start now, mark returned, complete (after restitution validation), or cancel.

Restitution Validation

When a rental item is returned, the vendor reviews its condition, records any damage, sets a damage amount (deducted from the security deposit), updates payment statuses, and clicks Validate and Complete to close the booking. This workflow ensures accountability and clear records.

Vendor Analytics

A dedicated analytics page gives vendors insight into their rental business:

  • KPI cards – total bookings, revenue, conversion rate, upcoming bookings
  • Overview tab – booking status donut chart and category breakdown
  • Charts tab – monthly bookings and revenue bar charts
  • Products tab – top rented products table and category statistics

Per-Category Admin Settings

Platform admins configure settings per category through a tabbed admin interface:

  • Categories – enable or disable each of the six platform categories
  • Booking – default booking modes and slot durations
  • Pricing – which pricing rules are available per category and their default values
  • Payment – deposit type, deposit percentage, security deposit toggle, balance methods
  • Permissions – which settings vendors can override (prices, deposits, schedules)
  • Notifications – email templates and reminder timing
  • Advanced – hold duration, draft cleanup, log retention
  • Danger zone – data preservation toggle for uninstall

REST API

A comprehensive REST API powers the frontend and can be used for headless integrations:

Public endpoints:
* Check availability for a product and date range
* Create a temporary hold (anti-double-booking)
* Revalidate before checkout
* Create a booking from WooCommerce checkout
* Get public settings

Vendor endpoints (authenticated):
* List, view, create, update, cancel bookings
* Check-in, check-out, complete, refund
* Calendar events and statistics
* Wizard draft save/load and publish
* Vendor products and settings

Admin endpoints:
* List all bookings platform-wide
* Platform-wide statistics

Internationalisation

The plugin is fully translatable. Translation files are included for 12 languages: Arabic, Chinese, English, French, German, Italian, Japanese, Dutch, Polish, Portuguese (Brazil), Russian, Spanish, and Turkish. The text domain is wahra-rentals-bookings.

Developer Friendly

  • WordPress Coding Standards – follows WPCS and passes plugin check
  • HPOS Compatible – declares High-Performance Order Storage compatibility for WooCommerce
  • Custom Database Tables – 8 dedicated tables for fast booking queries without post meta bloat
  • Singleton Pattern – core classes use ::instance() for consistent state
  • Hooks and Filters – extensible architecture with documented action and filter hooks
  • Readable Source – full React source included for WordPress.org compliance

Requirements

  • WordPress 6.6 or higher
  • PHP 8.1 or higher
  • WooCommerce 8.0 or higher (required)
  • Dokan Lite 4.x or Dokan Pro 4.x (optional, for multi-vendor mode)

Support & Community

Have questions? Found a bug? Want to suggest a feature?

Our team responds to all support questions within 24-48 hours.

Automatic Installation

  1. Go to Plugins > Add New in your WordPress admin panel
  2. Search for WooCommerce Rentals Bookings
  3. Click Install Now and then Activate
  4. Navigate to WooCommerce > Rentals Settings (solo mode) or the Dokan Vendor Dashboard (multi-vendor mode) to configure

Manual Installation

  1. Download the plugin ZIP file from WordPress.org
  2. Go to Plugins > Add New > Upload Plugin
  3. Select the ZIP file and click Install Now
  4. Activate the plugin
  5. The plugin auto-detects whether Dokan is installed. If Dokan is active it runs in multi-vendor mode; otherwise it runs in solo vendor mode

After Activation

  1. Go to Rentals > Settings (solo) or WooCommerce > Rentals Settings (Dokan) to configure platform categories, pricing rules, and payment settings
  2. Create or edit a WooCommerce product and enable it as a rental via the Rental product data tab (solo) or the Booking Wizard in the Dokan vendor dashboard
  3. Set availability, pricing, and payment options
  4. Publish the product – customers can now book it from your shop
  1. Booking wizard – Welcome step with draft resume and progress tracking.

    Booking wizard – Welcome step with draft resume and progress tracking.

  2. Booking wizard – Category selection (Accommodation, Vehicle, Equipment, Space, Service, Product).

    Booking wizard – Category selection (Accommodation, Vehicle, Equipment, Space, Service, Product).

  3. Booking wizard – Availability setup including schedule, buffer times, and slot durations.

    Booking wizard – Availability setup including schedule, buffer times, and slot durations.

  4. Booking wizard – Dynamic pricing engine showing weekend, long-stay, and seasonal rule configuration.

    Booking wizard – Dynamic pricing engine showing weekend, long-stay, and seasonal rule configuration.

  5. Booking wizard – Payment settings for deposits, security deposits, and balance collection methods.

    Booking wizard – Payment settings for deposits, security deposits, and balance collection methods.

  6. Vendor dashboard – Bookings management interface with status-based filtering and lifecycle actions.

    Vendor dashboard – Bookings management interface with status-based filtering and lifecycle actions.

  7. Vendor dashboard – Interactive FullCalendar view with color-coded booking statuses and event previews.

    Vendor dashboard – Interactive FullCalendar view with color-coded booking statuses and event previews.

  8. Vendor dashboard – Comprehensive analytics showing KPI cards, revenue charts, and category performance.

    Vendor dashboard – Comprehensive analytics showing KPI cards, revenue charts, and category performance.

  9. Admin settings – Platform category management and global booking configuration.

    Admin settings – Platform category management and global booking configuration.

  10. Admin settings – Payment and security deposit policy configuration per category.

    Admin settings – Payment and security deposit policy configuration per category.

  11. Admin settings – Granular vendor permissions matrix to control dashboard capabilities.

    Admin settings – Granular vendor permissions matrix to control dashboard capabilities.

  12. Frontend product page – The customer-facing booking interface with date picker and price calculation.

    Frontend product page – The customer-facing booking interface with date picker and price calculation.

Does this plugin work without Dokan?

Yes. The plugin works with WooCommerce alone in solo vendor mode. You get a full Rentals menu in wp-admin with bookings management, calendar, analytics, and settings. Dokan is only needed for multi-vendor marketplace functionality.

What WooCommerce version is required?

WooCommerce 8.0 or higher. The plugin is tested up to WooCommerce 10.4.3 and declares HPOS (High-Performance Order Storage) compatibility.

Does it work with WooCommerce HPOS?

Yes. The plugin declares HPOS compatibility and uses custom database tables for booking data, so it works with both the legacy post-based storage and the new HPOS tables.

Can I use this for hourly rentals?

Yes. The equipment, space, and service categories support time slot booking modes in addition to daily rentals. You can configure slot durations (e.g., 1 hour, 2 hours, half day) per category.

How do deposits work?

When a customer books a rental, they can be charged a deposit (percentage or fixed amount) at checkout. The remaining balance is collected later – online, by bank transfer, cash on delivery, or another method. Deposit settings are configured per platform category by the admin.

What is a security deposit?

A security deposit is a hold or charge to cover potential damage to the rental item. When the item is returned in good condition, the security deposit is released. If there is damage, the vendor can forfeit all or part of the security deposit.

Can vendors set their own prices?

This is controlled by the platform admin through vendor permissions. Per category, the admin can allow or disallow vendors from setting their own base prices, deposit amounts, security deposits, and scheduling preferences.

How does the booking lifecycle work?

Bookings follow the flow: pending > confirmed > checked_in > checked_out > completed. Automated cron jobs handle routine transitions (auto-start on the rental start date, auto-return on the end date). Vendors can also trigger transitions manually from their dashboard.

What happens when a rental is returned?

The booking moves to checked_out status. The vendor then reviews the item condition, records any damage, and updates payment statuses. Clicking “Validate and Complete” moves the booking to completed status. This is the restitution validation workflow.

Does it support multiple languages?

Yes. The plugin ships with translation files for 12 languages: Arabic, Chinese, French, German, Italian, Japanese, Dutch, Polish, Portuguese (Brazil), Russian, Spanish, and Turkish. You can add more translations using tools like Loco Translate or Poedit.

Is the booking wizard mobile-friendly?

Yes. The booking wizard is a React single-page application designed mobile-first. It is fully responsive and works on phones, tablets, and desktops. The wizard auto-saves drafts so vendors can start on one device and finish on another.

Can I customise the appearance?

Yes. The plugin includes colour customisation settings that let you change the primary colour used in the booking interface, calendar, and vendor dashboard elements.

How does the availability calendar work?

The calendar uses FullCalendar to display all bookings in day, week, or month views. Each booking is colour-coded by status. Vendors can use the calendar to spot scheduling conflicts, upcoming bookings, and available time slots at a glance.

What pricing rules are available?

Five types of dynamic pricing rules: weekend pricing, long-stay discounts, early-bird discounts, last-minute discounts, and seasonal pricing. Each rule type is available to specific platform categories (e.g., seasonal pricing is only for accommodation and spaces). Rules are configured globally by the admin and optionally overridden by vendors.

Does it integrate with WooCommerce checkout?

Yes. Bookings are created as part of the standard WooCommerce checkout flow. The deposit amount is charged at checkout and added as a line item to the WooCommerce order.

Are there any conflicts with other booking plugins?

The plugin uses its own custom database tables and does not modify WooCommerce core tables. It is designed to coexist with other plugins. If you experience a conflict, please report it in the support forum and we will investigate.

How do I handle cancellations?

Vendors can cancel bookings from the dashboard when the booking is in pending, confirmed, or checked_in status. The system also automatically cancels pending bookings whose start date has passed without confirmation.

Can I create bookings manually?

Yes. Vendors can create manual bookings through the booking management interface without requiring a customer checkout. This is useful for phone orders, walk-ins, or recording existing reservations.

What emails does the plugin send?

The plugin sends automated emails for booking confirmations, status changes, balance payment reminders, and cancellations. Email templates are configurable through the notification settings.

Does it work with page builders?

The booking interface works independently of page builders since it uses WooCommerce product pages and the vendor dashboard. The plugin does not add custom blocks or shortcodes that would conflict with page builders.

How is data stored?

The plugin creates 8 custom database tables for bookings, availability indexes, daily availability, pricing rules, wizard drafts, holds, blackout dates, and logs. This approach is faster than storing data in post meta and keeps the wp_posts table clean.

What happens when I delete the plugin?

The uninstall process checks a “preserve data” option first. If data preservation is off, it removes all 8 custom tables, plugin options, post and user meta, capabilities, cron hooks, and transients. If preservation is on, data is kept for later reinstallation.

Is the source code included?

Yes. The full React source code for the booking wizard is included in the /app/src/ directory alongside the compiled JavaScript. This satisfies WordPress.org’s requirement for readable/auditable source code.

Can I use this on a multisite installation?

The plugin is designed for single-site installations. Multisite support has not been tested and is not officially supported at this time.

Where can I get support?

Post your question in the WordPress.org support forum and we will respond within 24-48 hours. You can also visit wahra.tn for documentation.

How do I report a bug?

Please use the WordPress.org support forum or open an issue on GitHub.

2.2.0

Solo mode overhaul, booking lifecycle management, and admin UX improvements.

New Features:
* Full booking lifecycle management in solo mode (confirm, start, return, complete, cancel) – replaced basic bookings table with interactive vendor dashboard
* Early check-in blocking – prevents check-in before scheduled start date
* Vendor price adjustment at restitution – vendors can adjust total price when completing a booking
* Auto-confirm bookings setting in admin Settings > Bookings tab
* Notification email setting in admin Settings > Notifications tab
* Visual customization page – dedicated submenu for brand colors and client-facing texts

Improvements:
* Renamed solo mode main menu from “Rentals & Bookings” to “Rentals”
* Replaced “Fine-Tune” submenu with streamlined “Visual” submenu (colors + texts only)
* Moved notification email and auto-confirm settings from Fine-Tune into admin Settings tabs
* Solo mode settings sync – auto-confirm and notification email now sync between platform options and vendor user meta
* Hide “Add to cart” setting for rental products
* Admin menu consolidation in solo mode – single unified menu
* Fixed translation encoding issues across all 13 locale files (.po/.mo)
* Replaced hardcoded French strings in vendor JS with localized i18n strings
* All vendor-facing JS strings now use wahrbVendorConfig.i18n for proper translation support
* URL helper centralization – all dashboard URLs use wahrb_get_dashboard_url()

Technical:
* New template: templates/dokan/visual-settings.php – standalone visual settings for solo mode
* Bookings page in solo mode now loads vendor CSS/JS assets for full lifecycle UI
* 147 tests passing

2.1.0

  • New: Initial Setup Wizard – guided first-run configuration for admins
  • New: Automatic admin notice on first activation with link to setup wizard
  • New: 4-step wizard: Welcome, Categories, Settings, Ready
  • Improved: Setup Wizard visual redesign with full-screen admin experience and responsive layout
  • New: Relaunch Setup Wizard action available from Settings -> Tools
  • New: Dedicated Tools settings tab with system information summary
  • Improved: Existing installs auto-skip wizard on upgrade

2.0.6

WordPress.org ranking optimisation and admin UX improvements.

New Features:
* Contextual support widget on plugin admin pages (links to docs and forums)
* Ethical review prompt after 5 completed bookings or 30 days of usage
* Environment compatibility checker (PHP, WordPress, WooCommerce version warnings)
* SVN freshness reminder for developers (90-day update prompt)

Improvements:
* Expanded readme.txt with comprehensive feature descriptions and 25+ FAQs
* Updated “Requires at least” to WordPress 6.6
* Added screenshot placeholders for WordPress.org listing
* All new admin classes are self-registering standalone files (zero changes to existing code)

2.0.5

Added solo vendor mode – the plugin now works with WooCommerce alone, without requiring Dokan.

New Features:
* Solo vendor mode: full WP admin integration (Rentals menu with Bookings, Wizard, Calendar, Analytics, Settings)
* WooCommerce product data tab for rental configuration (solo mode)
* WP Dashboard widget showing booking stats and revenue (solo mode)
* Auto-detection of Dokan presence at runtime – single plugin ZIP works in both modes
* Mode-aware navigation: Dokan frontend dashboard URLs or WP admin URLs based on active mode

Bug Fixes:
* Fixed duplicate rental product fields appearing in solo mode (Loader and Solo Integration both registered fields)
* Removed dead wahrb_should_load_assets filter hook from Solo Integration
* Removed redundant asset enqueue in Solo Integration (already handled by Loader)
* Fixed outdated inline comment referencing wrong function name in Solo Integration

Improvements:
* Dokan is no longer required for activation – WooCommerce is the only hard dependency
* REST API vendor permission checks now support both Dokan sellers and WooCommerce shop managers
* Stripe detection in admin settings now checks both Dokan Stripe Connect and standard WC Stripe gateway
* All templates gracefully degrade when Dokan is absent (no fatal errors)
* Product editing hooks in Loader now conditional on Dokan mode (Solo Integration provides dedicated Rental tab)
* Added Requires Plugins: woocommerce header for WordPress 6.5+ dependency management

2.0.4

UI/UX improvements for calendar, dashboard widget, admin analytics, and updated screenshots.

Bug Fixes:
* Fixed calendar event text invisible (white on light blue) due to FullCalendar 6 CSS specificity override
* Fixed dashboard widget CSS silently discarded due to dokan-style handle (already printed before template)
* Fixed dashboard widget missing closing div tag breaking DOM structure
* Fixed admin analytics KPI values truncated at bottom (Arabic currency symbol clipped by overflow:hidden)

Improvements:
* Redesigned vendor dashboard booking widget with 2×2 stat grid, color-coded numbers, revenue highlight row, icon buttons, and active bookings badge
* Calendar event status colors now properly override FullCalendar 6 defaults with increased CSS specificity
* Updated plugin screenshots to reflect current UI

2.0.3

Bug fixes for booking API, email notifications, payment processing, and test coverage.

Bug Fixes:
* Fixed cancellation email not sent to vendor when recipient set to both
* Fixed cancel action bypassing status update hooks, preventing notifications
* Fixed API refund endpoint returning incorrect response format
* Fixed booking list API allowing invalid orderby parameter
* Fixed invalid refunded status in API booking filters
* Fixed security deposit unconditionally captured regardless of settings
* Fixed vendor booking API returning zero amounts for deposit and balance

Developer:
* Added regression test suite covering all fixed issues (147 total tests)

2.0.2

Minor internal improvements and build configuration updates.

2.0.1

Bug fixes, calendar improvements, and vendor permissions update.

Improvements:
* Calendar: Added status filter dropdown (filter bookings by Pending, Confirmed, Active, Returned, Completed, Cancelled)
* Calendar: Added “Returned” (checked_out) status with distinct amber color in events, legend, and popup
* Calendar: Fixed event CSS class prefix mismatch (fc-event-* now matches stylesheet)
* Vendor Settings: Payment section now shows read-only summary cards (Deposit, Security, Balance) when vendor cannot edit
* Vendor Permissions: Default changed to allow vendors to manage deposit and security deposit settings
* Admin Settings: Per-tab save fix prevents cross-tab data corruption when saving settings
* Admin Settings: Stripe Connect message changed from error to informational notice
* Vendor Settings: Fixed “Client Display Texts” layout (inputs no longer constrained to 200px)
* Platform Categories: Added auto-repair for corrupted all-disabled categories in database

Translations:
* Added 10+ missing French translations for vendor settings and calendar strings

Bug Fixes:
* Fixed vendor payment section showing only “managed by platform” message due to false permission defaults
* Fixed Flatpickr blocked dates integration in vendor manual booking modal

2.0.0

Major release with complete UI/UX overhaul, full booking lifecycle, and comprehensive currency/i18n fixes.

New Features:
* Full booking lifecycle: pending > confirmed > checked_in > checked_out > completed with automated cron transitions
* Vendor restitution validation workflow (condition review, damage amount, payment status updates)
* Manual vendor actions: check-in, check-out, complete, cancel with REST API endpoints
* Payment tracking with auto-timestamps (deposit_paid_at, balance_paid_at, security_captured_at, security_released_at)
* Vendor analytics dashboard redesigned with 3-tab layout (Overview, Charts, Products and Categories)
* KPI summary cards (Total Bookings, Revenue, Conversion Rate, Upcoming) always visible above tabs
* Status breakdown donut chart and category breakdown donut chart in Overview tab
* Monthly bookings and revenue bar charts in Charts tab
* Top rented products and category stats tables in Products and Categories tab
* Admin analytics dashboard with active vendor count and platform-wide statistics
* Per-category payment settings (deposit, security, balance configured per platform category)
* Per-category vendor permissions (overrides resolved per category instead of globally)
* Visual Customization color picker redesigned with native color swatches (72x72px circular inputs in CSS grid)
* Stats cache invalidation on booking creation and status change

Security Fixes:
* Fix: CRITICAL – Stored XSS vulnerability in booking detail modals via unescaped user data
* Fix: HIGH – Security deposit release/refund marked as successful even when WooCommerce refund failed
* Fix: HIGH – Hold race condition allowed two users to hold the same dates when updating existing hold
* Fix: HIGH – Wizard publish called apply_wizard_data_to_product() twice, potentially overriding Dokan hook changes
* Fix: HIGH – Timezone mismatch in availability check (strtotime vs gmdate comparison)

Critical Fixes:
* Fix: CRITICAL – Soft-deleted blackout dates were still blocking availability in daily sync
* Fix: CRITICAL – Cron draft cleanup never ran due to method name mismatch
* Fix: CRITICAL – Booking reminder emails silently failed due to missing method in emailer
* Fix: CRITICAL – Statistics revenue calculation used non-existent column – corrected to pricing_snapshot JSON
* Fix: CRITICAL – Booking payment schedule now resolves deposit/security from product’s platform category
* Fix: CRITICAL – Wizard REST endpoint returns per-category payment map instead of flat payment keys
* Fix: CRITICAL – Dokan vendor settings returns payment_by_category and permissions_by_category structures
* Fix: Currency symbol encoding – get_woocommerce_currency_symbol() HTML entities now decoded for all JS/JSON contexts (13 files fixed)
* Fix: wp_add_inline_style handle changed from dokan-style to wahrb-vendor-styles (CSS was silently discarded)
* Fix: Settings page tabs not working – all content collapsed onto Payment tab due to CSS handle bug
* Fix: Analytics page styles missing – same dokan-style handle root cause
* Fix: Bookings list PHP parse error – missing closing tag before HTML comment

UI/UX Improvements:
* Email config radio cards improved with stronger borders, shadows, and visual feedback
* Day abbreviations standardized: M to Mo, W to We, F to Fr across wizard steps 3 and 4
* Wizard step interactions fixed (offer type selection, pricing toggles, payment toggles, publish)
* Replaced all broken wp_add_inline_script calls with properly enqueued JS files
* Product page booking card enhanced with shadow, borders, z-index
* Wizard Create new product error handling with snackbar notifications
* Eye button (booking detail) on vendor bookings list fixed
* Phone validation relaxed to 8-digit minimum for valid Tunisian numbers

Internationalization:
* Removed all hardcoded DT currency fallbacks from React components – currency always from WooCommerce config
* Completed React wizard internationalization – all French strings replaced with t() calls
* Added French translations for analytics page (status breakdown, category breakdown, tab labels, KPI labels)
* Calendar day abbreviations properly localized (Mo to Lu, We to Me, Fr to Ve for French)
* All hardcoded French strings in wahrb-calendar.js replaced with i18n references
* Source strings in English per WordPress.org requirements

Architecture:
* WAHRB_Platform_Categories helper methods: get_payment_settings(), get_product_payment_settings(), get_all_payment_settings(), get_vendor_permissions()
* Activator default payment settings restructured to per-category format for all 6 categories
* Platform Categories tab is now the default admin settings tab
* General tab renamed to Advanced and moved after Notifications
* Chart.js charts call resize() on tab switch to fix canvas rendering
* Booking number generation with collision detection retry loop

Developer:
* Expanded test suite from 6 to 105 tests (phone validation, email formatting, stats, i18n, per-category architecture)
* Added WordPress.DB.PreparedSQL.InterpolatedNotPrepared to 40 phpcs annotations
* Added PluginCheck.Security.DirectDB.UnescapedDBParameter to all 117 phpcs annotations
* Deactivator and uninstall.php cleared phantom cron hooks – corrected to actual hooks
* Added root index.php for directory listing protection
* All wizard JS uses vanilla JS (no jQuery dependency)
* PHP data passed to JS via wp_localize_script for WordPress.org compliance

1.0.2

  • Fix: Renamed plugin prefix from DRB to WAHRB (4+ characters) for WordPress.org compliance
  • Fix: Renamed main plugin file to wahra-rentals-bookings.php
  • Fix: Removed load_plugin_textdomain (WordPress.org handles translations automatically)
  • Fix: Moved all inline scripts to wp_add_inline_script()
  • Fix: Improved input sanitization (wp_unslash, map_deep, sanitize_text_field on session data)
  • Fix: Improved output escaping (wp_kses, wp_strip_all_tags on inline CSS)
  • Fix: Added $wpdb->prepare() to all LIKE queries
  • Fix: Added phpcs:ignore annotations to direct database queries
  • Fix: Fixed mixed line endings in template files
  • Fix: Removed unnecessary development files from distribution
  • Fix: Added source code documentation in readme.txt
  • Fix: Updated third-party libraries to latest versions
  • Fix: Translated remaining hardcoded French strings

1.0.1

  • Fix: Enhanced security with improved nonce verification and output escaping
  • Fix: Standardized date handling for better timezone support
  • Fix: Optimized SQL queries and database interactions
  • Fix: Minor bug fixes and performance improvements

1.0.0

  • Initial release
  • Mobile-first vendor wizard
  • Advanced pricing engine with rules
  • Availability management system
  • Security deposit handling
  • Multi-step payment support
  • Email notification system
  • Dokan dashboard integration
Back to top