=== Mozz Bookings ===
Contributors: eliakorsah72
Tags: sms, booking, appointments, scheduling, africa
Requires at least: 5.3
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Book appointments via SMS across Africa. Customers book on your website and instantly receive an SMS confirmation, powered by Africa's Talking.

== Description ==

Mozz Bookings lets your customers book appointments directly from your website and receive an instant SMS confirmation. Built for businesses across Africa — Ghana, Kenya, Nigeria, South Africa, Tanzania and more — using the reliable Africa's Talking SMS gateway.

Drop the `[mozz_form]` shortcode onto any page and you have a clean, mobile-friendly booking form. Every booking lands in a simple admin dashboard where you can track, update, and complete appointments. Optional automatic reminders are sent 24 hours before each appointment so customers never forget.

Whether you run a barbershop, clinic, salon, consultancy, or any appointment-based business, Mozz Bookings keeps you connected with your customers on the channel they use most: their phone.

**Key features**

* Simple, mobile-responsive booking form via shortcode
* Instant SMS booking confirmations
* Automatic 24-hour appointment reminders
* Admin dashboard to view, filter, update, and delete bookings
* Africa's Talking integration (works in 10+ African countries)
* Configurable sender ID and business name
* Secure: nonces, input sanitization, output escaping, and capability checks
* Translation-ready

== External services ==

This plugin connects to the Africa's Talking SMS gateway to deliver booking
confirmation and reminder text messages. This is required for the plugin's core
function — sending SMS — and only happens when you have entered your own Africa's
Talking credentials and a booking is made (or a reminder is due).

What is sent, and when:

* When a customer submits a booking, or a 24-hour reminder is triggered, the
  plugin sends the customer's phone number and the message text to Africa's
  Talking, authenticated with your account username and API key.

No data is sent to any third party until you configure your Africa's Talking
credentials in the plugin settings. The plugin makes no other external requests.

* Service provider: Africa's Talking — https://africastalking.com
* Terms of Service: https://africastalking.com/terms
* Privacy Policy: https://africastalking.com/privacy

== Installation ==

1. Upload the `mozz-bookings` folder to the `/wp-content/plugins/` directory, or install the plugin through the WordPress Plugins screen directly.
2. Activate the plugin through the **Plugins** screen in WordPress.
3. Go to **Mozz Bookings → Settings** and enter your Africa's Talking username and API key.
4. (Optional) Set your sender ID and business name, and enable reminders.
5. Create or edit a page and add the shortcode `[mozz_form]`.
6. Publish the page and test a booking.

To restrict services, pass them to the shortcode:
`[mozz_form services="Haircut, Consultation, Massage"]`

== Frequently Asked Questions ==

= Do I need an Africa's Talking account? =
Yes. Create a free account at africastalking.com, then copy your username and API key into the plugin settings. Use the "sandbox" username while testing.

= Which countries are supported? =
Any country supported by Africa's Talking, including Ghana, Kenya, Nigeria, South Africa, Tanzania, Uganda, Rwanda, Malawi, and more.

= How are phone numbers handled? =
Numbers are automatically normalised to international format. Local numbers starting with 0 use a default country code (Ghana / +233 by default), which developers can change with the `mozz_default_country_code` filter.

== Screenshots ==

1. The front-end booking form.
2. The admin bookings dashboard with status filters and stats.
3. The settings page for Africa's Talking credentials.

== Changelog ==

= 1.2.0 =
* Added an Upgrade page highlighting the premium add-on (WhatsApp confirmations, team email alerts, custom fields). Hidden automatically when the premium add-on is active.

= 1.1.0 =
* Added configurable phone-number length validation (set a minimum and maximum number of digits in Settings).
* Added developer hooks so add-ons can extend the booking form, validation, and admin display.
* Improved form styling (consistent textarea support).

= 1.0.0 =
* Initial release.
* SMS booking form shortcode.
* Africa's Talking SMS integration.
* Admin dashboard with status management and deletion.
* Automatic 24-hour appointment reminders.
* Settings page for API credentials, sender ID, and reminders.

== Upgrade Notice ==

= 1.2.0 =
Adds an Upgrade page for users interested in the premium add-on.

= 1.1.0 =
Adds configurable phone-number length validation and developer extensibility hooks.

= 1.0.0 =
First public release of Mozz Bookings.
