85

Product support

Read the plugin support instructions.

Categories

Please note! This plugin is not (yet) compatible with the October CMS 2.0. This plugin will be upgraded in the future.

If you have never used a Booking Engine or if you have become frustrated with other Booking Engines, this is the Booking Engine for you! Try the ONLINE DEMO. The demo resets every hour, on the hour. Questions or feedback? Just send me a message!

A website, a booking engine, a channel manager, a property management system, commissions to online travel agencies like Booking.com, the costs of being online as a small B&B or hotel can quickly add up. This plugin brings an extremely versatile booking system for B&B's and smaller hotels to October CMS.

Online demo

I have begun using this demo to preview and field-test upcoming releases using Katalon. This means that you may stumble upon an occasional error but that this error will likely be fixed before a new release and does not exist in the current release.

Try the ONLINE DEMO. The demo resets every hour, on the hour. Questions or feedback? Just send me a message!

Features

Please note that the recommended way to handle payments is through my free Omnipay plugin. The native integration with Mollie is now deprecated.

STATUS FEATURE
YES RESPONSIVE DESIGN (bootstrap 4)
YES MULTILINGUAL
YES OPTIONAL SEASONAL PRICING (default, low season, high season)
YES OPTIONAL DISCOUNTS OR SURCHARGE FOR SINGLE OCCUPANCY
YES PACKAGES (per room)
YES LIMIT CHECKIN/CHECKOUT DAYS
YES AVAILABILITY CHECKER
YES OPTIONAL BOOKING ENGINE
YES CHANNEL MANAGER (syncing iCal feeds between OTA's like Booking.com and AirBnB)
YES WEBHOOKS TO NOTIFY OTHER SITES OF A DIRECT BOOKING
YES EVENTS (briddle.book.booking, briddle.book.paid, briddle.book.imported)
DEPRECATED OPTIONAL NATIVE ONLINE PAYMENTS THROUGH MOLLIE (iDeal, Creditcard, Paypal, etc.)
FREE OPTIONAL ONLINE PAYMENTS THROUGH PAYPAL AND MOLLIE USING MY FREE OMNIPAY PLUGIN
FREE SUPPORT FOR MY PAGEGUIDE LITE SITE TOUR PLUGIN
NO SUPPORT BOOKING MULTIPLE ROOMS AT ONCE
NO OFFER ROOMS IN QUANTITIES BASED ON ROOM TYPE

Support

Please use the Support Forum (on the left side of the page for any theme or plugin) or send me a message. I also offer design and development services. You can visit my website for more information. Do not use reviews to ask for support.

IMPORTANT NOTICE! All my activities on October CMS are suspended indefinitely after my second burn-out. I do not offer any support or updates

Why is this a paid plugin?

Someting that is free has little or no perceived value. Users do not commit to free products and only use them untill something else that looks nice and is free comes along. When I invest my time in the development of a new plugin or theme I commit to supporting and maintaining it. I ask my customers to do the same. I do not make money from this plugin by advertisements, upgrades or additional services like hosting or setup. I simply sell the software.

Did you know that only about 30% of my plugins are paid (70% of my plugins are free) and that 30% of your purchase or donation goes to help fund the October Project?

My plugins take many hours to develop (10-120+) and even more hours to document and maintain. My paid plugins have to pay for both this time and the time I am spending on free plugins and less successful paid plugins. This means that it will take even a successful plugin years to become profitable. Please consider buying an extended license if you want me to continue to maintain these plugins for the very small fee I ask in return or hire me for adding functionality that you feel is missing but valuable.

Like this plugin?

Did you know that only about 30% of my plugins are paid (70% of my plugins are free) and that 30% of your purchase goes to help fund the October Project? If you purchase this plugin, you can help me to develop it further, provide support for it or make new plugins.

My other plugins include:

Sync with OTA's like Booking.com and AirBnB

Please note! This plugin now targets the new October CMS 2.x (paid) version. This plugin will be upgraded in the near future to use Bootstrap 5 and Bootstrap 5 icons.

Hello, I am Wiego. Please start by reading the whole documentation! If you have any questions, find a bug or experience difficulties getting the plugin to work please use the Support Forum. Only leave a Review if you are happy with the plugin or are still unhappy with the plugin after reaching out to me in the Support Forum. Thank you! Wiego

Why is this a paid plugin?

Something that is free has little or no perceived value. Users do not commit to free products and only use them until something else that looks nice and is free comes along. When I invest my time in the development of a new plugin or theme I commit to supporting and maintaining it. I ask my customers to do the same. I do not make money from this plugin by advertisements, upgrades or additional services like hosting or setup. I simply sell the software.

Did you know that only about 30% of my plugins are paid (70% of my plugins are free) and that 30% of your purchase or donation goes to help fund the October Project?

My plugins take many hours to develop (10-120+) and even more hours to document and maintain. My paid plugins have to pay for both this time and the time I am spending on free plugins and less successful paid plugins. This means that it will take even a successful plugin years to become profitable. Please consider buying an extended license if you want me to continue to maintain these plugins for the very small fee I ask in return or hire me for adding functionality that you feel is missing but valuable.

Table of contents

Installation

You need an account on octobercms.com to install this plugin.

  1. Sign in and click on the Add to Project button on the product page for the plugin in the marketplace.
  2. Select the project you wish to add the plugin to (or create one).
  3. Install the 3rd-party plugins this plugin depends on
  4. Make sure you have attached this project to your website in the backend of your website in order to pull in the new plugin (Settings > Updates & Plugins). Don't worry, attaching or detaching your website to a project will never delete anything!
  5. Make sure you allow short_open_tag

Getting started

I recommend you also add the free sample template (Booktheme) to get started! This implements the below setup for you.

  1. Let's begin by adding some pages:
    • The homepage (/)
    • A page for syncing bookings on 3rd-party sites (e.g. /cronjob)
    • A page for syncing bookings on your site with 3rd-party sites (e.g. /ical/:slug)
    • A detail page for rooms (/room/:slug)
    • A detail page for packages (/package/:slug)
  2. Next, we need to add some components to these pages:
    • Your homepage will generally use the Components Availability, Book (place at bottom), Paid (place at bottom)
    • Add the component Cronjob to the page for syncing bookings on 3rd-party sites (e.g. /cronjob)
    • Add the component Export to the page for syncing bookings on your site with 3rd-party sites (e.g. /ical/:slug)
    • Add the components Availability, Room, Book (place at bottom) and Calendar (place at bottom) to the detail page for rooms (e.g. /room/:slug)
    • Add the components Availability, Package and Book (place at bottom) to the detail page for packages (e.g. /package/:slug)
  3. Now include the Twig tags {% styles %} and {% framework extras %} and {% scripts %} into your layout or page. Setup the jQuery-UI datepicker for the Availability component. Bootstrap 4, FontAwesome, jQuery and jQuery-UI are all also required in your theme:
    <html>
        <head>
            <title>{{ this.page.meta_title|_ }}</title>
            <meta name="description" content="{{ this.page.meta_description|_ }}">
            <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
            <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
            <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/ui-lightness/jquery-ui.css">
            <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
            <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
            {% styles %}
        </head>
        <body>
            {% page %}
            <script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous" ></script>
            <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous" ></script>
            <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" ></script>
            {% framework extras %}
            {% scripts %}

            (...)

        </body>
    </html>
  1. Setup the mail template This plugin sends confirmation mails so don't forget to configure mail preferences in Settings > Mail > Mail configuration!

You can use the following variables inside the mail template:

  • {{ room }} - ID of the room
  • {{ package }} - ID of the package
  • {{ description }}
  • {{ arrival }}
  • {{ departure }}
  • {{ name }}
  • {{ currency }}
  • {{ amount }}
  • {{ street }}
  • {{ housenumber }}
  • {{ zipcode }}
  • {{ city }}
  • {{ country }}
  • {{ email }}
  • {{ phonenumber }}
  • {{ remarks }}

Site

List of widgets & Components

There are several widgets & components available for your pages and layouts.

Component/Widget Description
calendar This dashboard widget shows booked dates for your rooms
availability This component includes an availability checker on your page (requires a DIV with ID #myRooms. It either shows all availability or if a :slug parameter is found just the availability of a certain room or package.
book This component saves the booking in our database and redirects the guest to our Payment Service Provider (place at bottom).
paid This component is used to mark a booking as paid after returning from our Payment Service Provider mollie (place at bottom).
room This component is used on a separate page (e.g. /room/:slug) and creates a SEO optimised page for every room.
package This component is used on a seperate page (e.g. /package/:slug) and creates a SEO optimised page for a package.
calendar Show an availability calendar (requires a DIV with ID #calendar). It either shows all bookings or if a :slug parameter is found just the bookings for a certain room.
menu This component adds a responsive Bootstrap menu to your page with links to your rooms and packages.
cronjob This component is used on a separate page (e.g. /cronjob) and imports iCal feeds with bookings from OTA's (like Booking.com) in your database.
export This component is used on a seperate page (e.g. /ical/:slug) and generates an iCal feed per room with the bookings for OTA's (like Booking.com).

Including widgets

  1. Go to the Dashboard page in the Backend.
  2. Click on the Manage widgets > Add widget button.
  3. Select the widget from the list.

Site

Including components

  1. Go to the CMS page in the Backend.
  2. Open a page or layout
  3. Under Components Select the component and drag it into your page or layout.

You can overwrite a component's partial without editing the partials inside the plugin so your changes will not be lost when you update. Simply add the partial inside a subfolder named after your plugin and component (e.g. book/availability/default.htm).

Bookings & Payments

When guests book on the site we save this transaction as a new booking. You can also:

  • add bookings manually
  • download PDF invoices for a booking

Site

Manage custom integrations with other Payment Service Providers (PSP's)

Please note that the recommended way to handle payments is through my free OMNIPAY PLUGIN. The native integration with Mollie is now deprecated.

By default, the Room Booking plugin uses the API of Payment Service Provider Mollie (mollie.com) for handling online payments. It has been brought to my attention that Mollie is only available for payments within the EU. I have implemented three events (briddle.book.booking, briddle.book.paid and briddle.book.imported) and a new setting allowing you to switch the integration with mollie off (Settings > Bookings) or implement your own integration with a PSP.

PLEASE NOTE Under NO circumstances should you collect (let alone store) creditcard details on your website. ALWAYS redirect your guests to the website of your Payment Service Provider and let them handle payments.

  1. Go to Settings > Bookings and select that you want to use a custom integration to handle online payments
  2. This will still prevent the room from getting booked by another guest and will still send an email confirming the booking to your guest with instructions how to pay.
  3. Create a page on your website that guests will be redirected to that will handle payments (e.g. /redirect) on your website
  4. Guests will now be redirected to the page /redirect on your website (or select another page in Settings > Bookings)
  5. Add the following code to the Code section of your page or layout :
    function onStart() 
    {
        use Briddle\Book\Models\Payment;
        Payment::pay(function($vars) 
        {
            //print_r($vars[0]);
        });
    }

This callback function will return the following object for you to use in your custom integration:

  • id
  • room_id
  • amount
  • currency
  • method
  • issuer
  • remarks
  • ispaid
  • guest_id
  • startdate
  • enddate
  • paymentid
  • confirmed
  • created_at
  • updated_at
  • comments
  • persons
  • source

You can also subscribe to the new briddle.book.booking event (fired just after creating the booking and sending the mail but before handling online payment), the briddle.book.paid event (fired after marking the order as paid) and the briddle.book.imported event (fired after importing an event in the cronjob) in your own plugin. These events can be used to add asynchronous functionality to the Room Booking Plugin (events are asynchronous and do not allow redirecting users or sending feedback to them).

Manage custom booking forms

You can switch the modal dialog for the booking form off (Settings > Bookings) to implement your own booking form. This replaces the modal dialog when a user clicks the "Book now" button with a $_POST request to the redirect page.

The following fields will be posted and this data can be used to populate your own booking form:

  • arrival
  • departure
  • room
  • price
  • description
  • persons
  • nights
  • package

Please note that the recommended way to handle booking form is through the default modal dialog! If you choose to implement your own form, bookings are NOT automagically stored in the database and NO mails will be sent. You have to store the booking yourself!

Rooms & Packages

The plugin assumes you are offering unique rooms and does not support offering collections of identical rooms like you might see at larger hotels. A package is linked to a number of nights. If the number of selected nights is lower (or higher) the departure date will be updated to match the number of nights in the package.

You can specify what days of the week are available for checkin and checkout in Settings > Booking

The checkin- & checkout-day restriction is not enforced in the backend. It is only enforced in the frontend by the jQuery-UI date picker (usually this is sufficient). Please look at the free sample template.

Example

Let us suppose that you only want to accept guests for weekends, midweeks or weeks. You allow checking in on wednesdays and fridays and checking out on sundays and wednesdays. Guests can stay from:

  • fri - sun (weekend)
  • fri - wed (midweek)
  • fri - sun (week)
  • wed - sun (midweek)
  • wed - wed (week)

This requires you to add some code to the onStart() function in the Code section of your page or layout:

    use Briddle\Book\Models\Settings;
    function onStart()
    {
        $this['checkindays'] = json_encode(Settings::get('hotel_checkindays'));
        $this['checkoutdays'] = json_encode(Settings::get('hotel_checkoutdays'));
    }

And some javascript at the bottom of your HTML:

    var checkindays = {{ checkindays|raw }};
    var checkoutdays = {{ checkoutdays|raw }};
    var dateToday = new Date();
    $("#startInputDate").datepicker({
        dateFormat: 'yy-mm-dd',
        minDate: dateToday,
        onSelect: function(dateText, inst){
             $("#endInputDate").datepicker("option","minDate",
             $("#startInputDate").datepicker("getDate"));
        },
        beforeShowDay: function(date) {
            var day = date.getDay();
            for (var i=0;i<checkindays.length; ++i) 
            {
               if(jQuery.inArray(day.toString(), checkindays) !== -1)
                {
                    return [true];
                }
            }
            return [false];
        }
    });

    $("#endInputDate").datepicker({
        dateFormat: 'yy-mm-dd',
        minDate: +1,
        beforeShowDay: function(date) {
            var day = date.getDay();
            for (var i=0;i<checkoutdays.length; ++i) 
            {
                if(jQuery.inArray(day.toString(), checkoutdays) !== -1)
                {
                    return [true];
                }
            }
            return [false];
        }
    });
    $("#startInputDate").prop("readonly", true);
    $("#endInputDate").prop("readonly", true);

Guests

When guests book on the site we save this information in a profile.

We only create a profile if we do not have a record for the supplied combination of an email address and a zipcode.

Seasons

Seasonal pricing allows you to specify a low season and a high season.

You can enter a low season price and a high season price at the room level.

Example

  • Let us suppose we specify a low season from September 1st - September 9nth.
  • Let us suppose we specify a high season from September 9nth - September 30th.
  • Let us suppose a customer books a room from September 8th - September 10th.
  • Let us suppose the normal price is 100, the low season price is 50 and the high season price is 200.

In this example the customer will check in on September 8th and check out on September 10th so the customer will pay for 2 nights (September 8th/September 9th and September 9th/September 10th).

  1. The first night (September 8th/September 9th) is in the low season (50).
  2. The second night (September 9th/September 10th) is in the high season (200).
  3. The customer will be charged 250.

Channels & Webhooks

Channels allow the Room Booking plugin to act as a Channel Manager. You can trigger other websites that support it to update their availability when a direct booking is made on your site. There are currently no OTA's that support this but you can use webhooks on sites like IFTTT.

Including the cronjob component

Many Online Travel Agencies (OTA's) like Booking.com and AirBnB give you access to an iCal feed (.ics) for each room. You can use these feeds to periodically update October CMS with bookings made on OTA's.

This requires you to setup a cronjob to wget -O - https://yoursite.com/cronjob >/dev/null 2>&1.

OTA's that support webhooks can also use this page to force an immediate update of your website after a guest made a booking on the website of the OTA.

  1. Create a new page in October CMS (CMS > Pages)
  2. Add the Component Cronjob to this (empty) page (without a layout)
  3. October CMS will sync with your channels each time you load this page

Including the export component

You can also allow Online Travel Agencies (OTA's) like Booking.com and AirBnB to periodically update the availability of your rooms on their system by entering an iCal feed (.ics) for each room. You can also use this feed to update a Google calendar but this requires you to add .ics to the end of the URL.

  1. Create a new page in October CMS (CMS > Pages)
  2. Add the Component Export to this (empty) page (without a layout)
  3. The URL of this page should contain a :slug (e.g. /ical/:slug). Each room has it's own iCal feed

Translations

You can allow translation with RainLab Translate plugin. For translations to work there must be a localePicker component included in your layout/page.

  1. After installation of Translate plugin, please add at least two languages in Settings > Translate > Manage languages.
  2. Go to Settings > Translate > Translate messages to translate messages.
  3. In the Rooms and Packages forms you can translate the relevant fields.

Permissions

You can set permissions to restrict access in Settings > Administrators:

  • Manage room features
  • Manage high and low season
  • Manage packages
  • Manage rooms
  • Manage guests
  • Manage payments
  • Manage 3rd-party iCal feeds for syncing

Omnipay PSP gateway

Please note that the recommended way to handle payments is through my free OMNIPAY PLUGIN. This plugin handles the functionality below for you automagically.

If you do not want to use Mollie you can also add ignited/laravel-omnipay package and omnipay gateway packages to the composer.json file of your project and implement your own PSP through Omnipay.

You can specify the API-credentials for your PSP in Settings > Booking but you will need to implement them in your own code

{
    "require": {
        "league/omnipay": "^3",
        "omnipay/paypal": "^3.0",
        "omnipay/mollie": "^5.0",
        "omnipay/stripe": "^3.0"
    }
}

Execute at the root of your project:

composer update

You can also install just the required packages and their dependencies without updating your other packages:

composer require league/omnipay

https://github.com/thephpleague/omnipay (or https://github.com/ignited/laravel-omnipay)

Add the following code to the Code section of your custom integration page (e.g. /redirect):

function onStart()
{
    use Illuminate\Support\Facades\DB;
    use Briddle\Book\Models\Payment;
    Payment::pay(function($vars) 
    {      
        // Setup payment gateway
        use Omnipay\Omnipay;
        $gateway = Omnipay::create('Mollie');
        $gateway->setApiKey('test_12345');
        //$gateway->setTestMode(true);
        $response = $gateway->purchase(
        [
            "amount" => $vars[0]->amount,
            "currency" => $vars[0]->currency,
            "description" => "Order",
            "returnUrl" => "https://www.yoursite.com/?id=" . $vars[0]->id
        ]
        )->send();

        // Reference to order
        $transactionReference = $response->getTransactionReference();
        Db::table('briddle_book_payment')->where('id', $vars[0]->id)->update(['paymentid' => $transactionReference]);
        if ($response->isSuccessful()) 
        {
            // Payment was successful: not used here because we redirect
        } 
        elseif ($response->isRedirect()) 
        {
            $response->redirect();
        } 
        else 
        {
            // echo $response->getMessage();
        }
    });
}

Add the following code to the Code section of your return URL (e.g. /):

function onStart()
{
    use Illuminate\Support\Facades\DB;
    use Illuminate\Support\Facades\Event;

    $id = isset($_GET['id']) ? $_GET['id'] : false;
    $booking = Db::table('briddle_book_payment')
    ->leftJoin('briddle_book_guest', 'briddle_book_guest.id', '=', 'briddle_book_payment.guest_id')
    ->select(
        'briddle_book_payment.paymentid'
    )
    ->where([
        ['briddle_book_payment.id',$id]
    ])
    ->first();    

    // Setup payment gateway
    use Omnipay\Omnipay;
    $gateway = Omnipay::create('Mollie');
    $gateway->setApiKey('test_12345');

    $response = $gateway->completePurchase(array(
        'transactionReference' => $booking->paymentid
    ))->send();
     if ($response->isSuccessful()) 
     {
        // mark as paid
        Db::table('briddle_book_payment')->where('id', $id)->update(['ispaid' => 1]);
        $this->page['paid'] = 'yes';
        Event::fire('briddle.book.paid',$booking);  
     }
     else
     {
         // NOT paid
         $this->page['paid'] = 'no';
     }
}

Support

Please use the Support Forum (on the left side of the page for any theme or plugin) or send me a message. I also offer design and development services. You can visit my website for more information. Do not use reviews to ask for support.

IMPORTANT NOTICE! All my activities on October CMS are suspended indefinitely after my second burn-out. I do not offer any support or updates

1.3.6

!!! Various bugfixes for October CMS 2.x

May 15, 2021

1.3.5

!!! Full revision for October CMS 2.x

May 15, 2021

1.3.4

Cleanup

Jul 31, 2019

1.3.3

Updated table briddle_book_payment

Jul 31, 2019

1.3.2

Updated table briddle_book_package

Jul 31, 2019

1.3.1

Default content for mail template and backend translations

Jul 31, 2019

1.3.0

Cleanup

Feb 26, 2019

1.2.9

Added setting to allow custom booking forms instead of the default modal dialog

Feb 26, 2019

1.2.8

Added setting to allow custom booking forms instead of the default modal dialog

Feb 26, 2019

1.2.7

Fixed translation bug in guest controller and added support for german

Feb 25, 2019

1.2.6

Added support for Pageguide Lite site tour for the backend pages

Dec 29, 2018

1.2.5

Bug during installation fixed.

Dec 17, 2018

1.2.4

Change title of dashboard widgets, only show dashboardwidgets for users who have permission, updated in-app documentation

Oct 28, 2018

1.2.3

Added extra permissions

Sep 28, 2018

1.2.2

Improved configuration of permissions

Sep 28, 2018

1.2.1

Added translations for backend

Sep 28, 2018

1.2.0

!!! 'Added configuration for availability and calendar component and changed the default view for the room component'

Sep 28, 2018

1.1.5

Added exports of all guests (.csv), Added help section

Sep 19, 2018

1.1.4

When using a custom integration to handle online payments allow selecting a page

Sep 18, 2018

1.1.3

Added event briddle.book.imported

Sep 18, 2018

1.1.2

Only fire event briddle.book.paid when the order is first marked paid

Sep 17, 2018

1.1.1

Added a callback function to allow custom integrations with other Payment Service Providers (PSPs)

Sep 15, 2018

1.1.0

Added listeners briddle.book.booking and briddle.book.paid, added mail template, allow switching payments through mollie off, prepared adding PSP through plugins

Sep 15, 2018

1.0.103

Added webhooks to cronjob

Sep 12, 2018

1.0.102

Packages now show nights and persons, added checkin- and checkout-days to settings, added jqueryUI datepicker that restricts arrival and departure dates

Sep 12, 2018

1.0.101

Updated table briddle_book_room

Sep 12, 2018

1.0.100

Updated table briddle_book_room

Sep 12, 2018

1.0.99

Added settings for PDF invoices

Sep 11, 2018

1.0.98

A couple of minor bugfixes, renamed payment to booking and added PDF invoices

Sep 11, 2018

1.0.97

Show bookings per channel

Sep 10, 2018

1.0.96

Updated table briddle_book_payment

Sep 10, 2018

1.0.95

Updated table briddle_book_payment

Sep 10, 2018

1.0.94

Modified docs

Sep 10, 2018

1.0.93

Added webhooks

Sep 10, 2018

1.0.92

Created table briddle_book_webhook

Sep 10, 2018

1.0.91

Added docs

Sep 10, 2018

1.0.90

Performance enhancements to import and export of iCal feeds and new date checks in booking process

Sep 10, 2018

1.0.89

Bugfix iCal feed import not showing double bookings in calendar widget dashboard

Sep 10, 2018

1.0.88

Bugfix Mollie onpaid for non-existing id

Sep 09, 2018

1.0.87

Style change to availability search

Sep 09, 2018

1.0.86

Updated table briddle_book_channel

Sep 08, 2018

1.0.85

Bugfix iCal feeds

Sep 08, 2018

1.0.84

Fixing bug introduced when switching to Query Builder

Sep 08, 2018

1.0.83

Show revenue and stays per guest and in total for this year and the year before. Added required fields for payments

Sep 08, 2018

1.0.82

Updated table briddle_book_room

Sep 08, 2018

1.0.81

Icons instead of Switches in lists, required fields

Sep 08, 2018

1.0.80

Updated table briddle_book_guest

Sep 08, 2018

1.0.79

Updated table briddle_book_guest

Sep 08, 2018

1.0.78

Updated table briddle_book_guest

Sep 08, 2018

1.0.77

Updated table briddle_book_room

Sep 08, 2018

1.0.76

Updated table briddle_book_room

Sep 08, 2018

1.0.75

Updated table briddle_book_room

Sep 08, 2018

1.0.74

Bugfix in links to rooms and packages when using another language

Sep 06, 2018

1.0.73

Added translations of room and package descriptions

Sep 06, 2018

1.0.72

Added currency field for Mollie

Sep 06, 2018

1.0.71

Added menu component

Sep 06, 2018

1.0.70

Added more... link to packages

Sep 06, 2018

1.0.69

Added comments to slug field, fixed bug is calculating low season pricing, return error if arrival date is after departure date, feedback on no availability

Sep 05, 2018

1.0.68

Some minor changes

Sep 01, 2018

1.0.67

Some minor changes

Sep 01, 2018

1.0.66

Some minor changes

Sep 01, 2018

1.0.65

Some minor changes

Sep 01, 2018

1.0.64

Some minor changes

Sep 01, 2018

1.0.63

Some minor changes

Sep 01, 2018

1.0.62

Some minor changes

Sep 01, 2018

1.0.61

Some minor changes

Sep 01, 2018

1.0.60

Some minor changes

Sep 01, 2018

1.0.59

Some minor changes

Sep 01, 2018

1.0.58

Some minor changes

Sep 01, 2018

1.0.57

Some minor changes

Sep 01, 2018

1.0.56

Some minor changes

Sep 01, 2018

1.0.55

Some minor changes

Sep 01, 2018

1.0.54

Some minor changes

Sep 01, 2018

1.0.53

Some minor changes

Sep 01, 2018

1.0.52

Some minor changes

Sep 01, 2018

1.0.51

Some minor changes

Sep 01, 2018

1.0.50

Some minor changes

Sep 01, 2018

1.0.49

Some minor changes

Sep 01, 2018

1.0.48

Some minor changes

Sep 01, 2018

1.0.47

Some minor changes

Sep 01, 2018

1.0.46

Some minor changes

Sep 01, 2018

1.0.45

Some minor changes

Sep 01, 2018

1.0.44

Some minor changes

Sep 01, 2018

1.0.43

Some minor changes

Sep 01, 2018

1.0.42

Some minor changes

Sep 01, 2018

1.0.41

Some minor changes

Sep 01, 2018

1.0.40

Some minor changes

Sep 01, 2018

1.0.39

Some minor changes

Sep 01, 2018

1.0.38

Some minor changes

Sep 01, 2018

1.0.37

Some minor changes

Sep 01, 2018

1.0.36

Some minor changes

Sep 01, 2018

1.0.35

Some minor changes

Sep 01, 2018

1.0.34

Some minor changes

Sep 01, 2018

1.0.33

Some minor changes

Sep 01, 2018

1.0.32

Some minor changes

Sep 01, 2018

1.0.31

Some minor changes

Sep 01, 2018

1.0.30

Some minor changes

Sep 01, 2018

1.0.29

Some minor changes

Sep 01, 2018

1.0.28

Some minor changes

Sep 01, 2018

1.0.27

Some minor changes

Sep 01, 2018

1.0.26

Some minor changes

Sep 01, 2018

1.0.25

Some minor changes

Sep 01, 2018

1.0.24

Some minor changes

Sep 01, 2018

1.0.23

Some minor changes

Sep 01, 2018

1.0.22

Some minor changes

Sep 01, 2018

1.0.21

Some minor changes

Sep 01, 2018

1.0.20

Some minor changes

Sep 01, 2018

1.0.19

Some minor changes

Sep 01, 2018

1.0.18

Some minor changes

Sep 01, 2018

1.0.17

Some minor changes

Sep 01, 2018

1.0.16

Some minor changes

Sep 01, 2018

1.0.15

Some minor changes

Sep 01, 2018

1.0.14

Some minor changes

Sep 01, 2018

1.0.13

Some minor changes

Sep 01, 2018

1.0.12

Some minor changes

Sep 01, 2018

1.0.11

Some minor changes

Sep 01, 2018

1.0.10

Some minor cleanup and usability improvements

Sep 01, 2018

1.0.9

Created table briddle_book_season

Sep 01, 2018

1.0.8

Created table briddle_book_package

Sep 01, 2018

1.0.7

Created table briddle_book_channel

Sep 01, 2018

1.0.6

Created table briddle_book_feature_room

Sep 01, 2018

1.0.5

Created table briddle_book_feature

Sep 01, 2018

1.0.4

Created table briddle_book_room

Sep 01, 2018

1.0.3

Created table briddle_book_guest

Sep 01, 2018

1.0.2

Created table briddle_book_payment

Sep 01, 2018

1.0.1

Initialize plugin.

Sep 01, 2018

Upgrading

1.1.0

  • You can now switch the integration with mollie off (Settings > Bookings). This will still prevent the room from getting booked by another guest and will still send an email confirming the booking to your guest with instructions how to pay.
  • You can subscribe to the new briddle.book.booking event (fired just after creating the booking and sending the mail but before handling online payment), the briddle.book.paid event (fired after marking the order as paid) and the briddle.book.imported event (fired after importing an event in the cronjob) in your own plugin. These events can be used to add asynchronous functionality to the Room Booking Plugin (events are asynchronous and do not allow redirecting users or sending feedback to them).

Please note that the recommended way to handle payments is through my free OMNIPAY PLUGIN. The native integration with Mollie is now deprecated.