# Bookingo

Bookingo - Course Booking System for WordPress
Created: 28.05.2021 | Latest update: 16.08.2022

## About

Bookingo - Course Booking System is a powerful WordPress booking plugin for a small service industry, schools and trainers. The plugin will be perfect as a booking for a swimming school, language or driving school, wherever we deal with a repeating pattern of classes.

The plugin allows you to create an unlimited number of courses and an unlimited number of groups within the courses. That is why you can, for example, create several bookings for various industries within one website. For each course group, you can specify a course start and end date (and even time), number of lessons, class duration, student limit, and a schedule based on recurring events or individual lesson dates. You can also specify the location, contact details of the trainer and additional information (e.g. about the obligatory swimming cap). For a given course, you can create a description with a featured image or promotional video, based on the WordPress post editor.

The big advantage of this plugin is the ability to define your own form fields, so regardless of the industry or course, you can create your own form using a simple editor. You can also create your own field sections, such as Course Participant Data or Applicant Data. There can be any number of such sections or form fields.

## Installing the plugin

### Installing the plugin via dashboard

To install the plugin via WordPress dashboard, please follow the steps below:

1. Download the plugin (select Installable WordPress file only option) from the CodeCanyon to your computer. You will get file in ZIP format.
2. Go to WordPress dashboard and navigate to Plugins / Add new.
3. Click on Upload plugin button.
4. Upload ZIP package from the first point.
5. Click the Activate link that appears below the plugin's title.

### Installing the plugin via FTP

To install the plugin via FTP, please follow the steps below:

1. Download the plugin (select Installable WordPress file only option) from the CodeCanyon to your computer. You will get file in ZIP format.
2. Unzip it to access the uncompressed files.
3. Connect to your server using your preferred FTP application (e.g FileZilla).
4. Navigate to the wp-content/plugins folder within the WordPress installation on your website.
5. Upload uncompressed plugin to this location via FTP.
6. Go to WordPress dashboard and click on Plugins menu.
7. Click on Activate link.
8. Now your plugin is installed and ready to work.

### Updating the plugin

Please note:

1. If you made any changes in plugin core files all of them will be lost.
2. All data which you entered via WordPress dashboard will be untouched.
3. In case of translations, please make copy of your .po and .mo file.

To update the plugin, please follow the steps below:

1. Download the plugin (select Installable WordPress file only option) from the CodeCanyon to your computer. You will get file in ZIP format.
2. Go to WordPress dashboard and navigate to Plugins.
3. Find the plugin on the list.
4. Deactivate old version.
5. Remove old version.
6. Click on Upload plugin button.
7. Upload ZIP package from the first point.
8. Click the Activate link that appears below the plugin's title.
9. Reset browser cache before using the plugin.

## Importing dummy content

To start importing demo content, please follow the steps below:

- Go to Settings / Bookingo
- Click on Import demo tab.
- Click on Import button.

Please note that this operation is not reversible. It can takes a few seconds, depending on server speed.

## Quick start

The best (and the fastest way) to start using the plugin after installation is Importing dummy content. If you don't want to do this from some reasons, you can start built content from scratch. In this case you have to:

- Creating at least one Course group.
- Creating single Course and assign previously created group to this course.
- Creating single Booking Form and assign previously created course to this form.
- Copy shortcode of the booking form and paste it to the required post/page.

## Modules

### Bookings

Bookings module is used to view bookings send by customers.

### Bookings Forms

Booking Form module allows to set up form. In this part of plugin you can define possible to use currencies, enable wooCommmerce support as well as coupons, and modify default colors. Each booking form should be associated with one course exactly.

### Courses

Courses is the main plugin module. It allows to define dates in which registration is available, list of available payments (created in Payments module), set up notifications, form elements (like extra fields displayed in the booking form) and agreements. It allows also set up promo section displayed in the top part of booking form. Each course should include at least one course group.

### Course Group

Course Group is one of the main plugin module. It allows to define course dates, schedule, number and length of lessons, location and price. It is very important to understand that group has to be assigned to exactly one course.

### Pricing Rules

Pricing Rules module is used to change price per participant depends on some factors. It allows to e.g change the price depends on dates of registration.

### Locations

Locations module is used to create an entries include address of places in which classes are held.

### Payments

Payments module is used to define own payment methods for a course. It allows to use built-in gateways like Stripe and Paypal. In case of enabling wooCommerce during booking form, plugin uses methods from WC and payments from this module will not be used.

### Coupons

Coupons module is used to create discount codes for a customers. It allows to define limit (as a number) of using, fixed or percentage discount, as well as period during which coupon is active. Module can be enable during editing booking form.

### Tax Rate

Tax Rates module is used to define different values of tax. Tax rates are displayed in all places in the plugin where the price is available.

### E-mail Accounts

E-mail Accounts module is used to create accounts required to send notifications about new bookings (to the customers and owners) and changing in booking statuses. Module allows to use SMTP as well as test all settings by sending sample message.

## Plugin options

All global options of the plugin are available in Settings / Bookingo. This part of the plugin consists of tabs as below:

- General - here you can set company logo, base currency, time and date format etc.
- Import demo - more information you can find here Importing dummy content,
- Coupons creator - allows to create multiple coupons via one click,
- Exchange rates - allows to import and set manually exchange rates for all currencies used in the plugin,
- Log manager - includes debug information for such operations like: sending e-mail messages, sending short messages via Twiilo, Nexmo and Telegram, payment processing via Stripe.

## Internationalization

The plugins comes with default .pot file located in languages folder.
To translate the theme, please follow the steps below:

1. Download and install Poedit application.
2. Download languages/bookingo.pot file.
3. Open Poedit, click on File / New from POT/PO file text menu on the top, select downloaded .pot file and click on Open button.
4. After opening file, you have to select language of translation.
5. Translate all phrases to selected language.
6. Click on File / Save, you will be promted about entering file name.
7. You have to create file based on schema: bookingo-CODE.po, where list of code for each language is available here: https://wpastra.com/docs/complete-list-wordpress-locale-codes/ in column named WordPress Locale Code.
8. Upload files: .mo (newly created) and .po to server to the languages folder.
9. Please note, that to use new translations, your WordPress site language (Settings / General / Site Language) should be the same as CODE (language) of .po file.

## FAQ

##### How to set up logo?

You can set logo in Settings / Bookingo / General / Logo.

##### How to change format of date and time?

You can set logo in Settings / Bookingo / General in sections Date format and Time format.

##### How to use other currencies than base one?

Please follow these steps

- At first you need to define exchange rates between base currency and other ones which you plan to use in the plugin. You can do this in Settings / Bookingo / Exchange rates. You can set rates manually or by using buil-in providers like Fixer.io which help you import rates automatically.
- In second second step it is required to define allowed currencies for a booking form. To do this, edit particular form, go to section General / Currencies and select currencies.
- You can use booking form in selected currency by adding query string currency=CODE to the URL address of page on which booking form is located.

##### How to set up e-mail notifications?

Please follow these steps

- Create receiver e-mail account via E-mail accounts module. If it is needed, set up SMTP settings as well.
- Set sender e-mail account during editing Course in Notifications / E-mail / Sender e-mail account and in Settings / Bookingo / General / Default sender e-mail account.
- Set receiver e-mail account during editing Course in Notifications / E-mail / Sender e-mail account.

##### I cannot get notifications via mail.

Please follow these steps:

- Make sure that you created an e-mail account via E-mail account module. Check if the configuration is valid, especially if you use SMTP authorization.
- Test sending e-mail message via E-mail testing tab. Carefully read messages returned via server.
- Check possible errors related to sending e-mail messages stored in Settings / Bookingo / Log Manager / E-mail.
- Make sure that you set sender e-mail account during editing Course in Notifications / E-mail / Sender e-mail account and in Settings / Bookingo / General / Default sender e-mail account.
- Check whether the message is not in the spam/junk folder.
- If you are using SMTP authorization, please enable debug mode (you will find such option on the end of SMTP settings) and check reply from server via browser console (after sending booking form, it will freeze so you will be able to debug reply via Chrome/Firefox console).
- Deactivate SMTP authorization and try to send e-mail message without it.

##### I changed colors in the booking form, but there is no effect.

You have to reset your browser cache and - if you have some caching plugin installed like "W3 Total Cache" - you have to reset its cache as well.

## Files structure

Path | Description
--- | ---
class | PHP classes
demo | Files with demo content
font | Fonts files
languages | Language .po/.mo files
library | PHP libraries used in theme.
media | Image/audio files
multisite | Dynamic created files
script | Javascript libraries/plugins
style | CSS files
template | HTML/PHP templates
vc | Visual composer components
woocommerce | wooCommerce templates

## Credits

### Fonts

This plugin uses fonts as below:

1. Nunito,
   Designed by Vernon Adams, CyrealSIL Open Font License, 1.1, https://fonts.google.com/specimen/Nunito,

## Version history

Release date | Version | Description
--- | --- | ---
16.08.2022 | 1.6 | Improved code, Added option to set own coupon code, Added option to log error from fixer.io, Added option to export bookings with extra fields, Added option to display net price on the course page, Added option to set booking status if the sum of the booking is equal to 0.00.
20.06.2022 | 1.5 | Added option to enable/disable "Applicant" section displayed in the booking form, Added option to set different format of the address, Added option to export bookings, Added option to display text instead of price, Added option to display text under the price, Added option to show/hide number of participants, Added functionality to log events from built-in payment methods like Stripe and PayPal.
02.02.2022 | 1.4 | Improved code.
19.11.2021 | 1.3 | Improved code.
14.09.2021 | 1.2 | Improved code.
01.06.2021 | 1.1 | Improved code.
28.05.2021 | 1.0 | Initial release.

## Support

Support for all our items is conducted through our Support Forum. Please register an account, search the forum or create a new topic, we'll answer as soon as possible.
We're in GMT +1 and we aim to answer all questions within 24 hours (Monday – Friday). In some cases the waiting time can be extended to 48 hours. Support requests sent during weekends or public holidays will be processed on next Monday or the next business day.