=== mee-class ===
Contributors: breedartstudios
Tags: booking, tickets, events, qr-code, workshop
Requires at least: 5.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0
License: GPLv3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Class booking, registration & event ticketing: sell prepaid tickets for cooking classes, wine tastings, yoga, workshops and courses, with QR check-in.

== Description ==

mee-class sells classes and event tickets from your own WordPress site: cooking classes, wine tastings, workshops, yoga, music and language lessons. Put the `[mee-class]` shortcode on a page and guests pick a date, choose their seats, pay online and get a ticket with a QR code by email.

The plugin is free and needs no account and no key: create your venue in the WordPress panel and the booking page works. Your photos and logo stay in your own Media Library, while bookings, seats and payments run through the mee-table service at `api.mee-table.com`.

**Pricing.** There is no monthly fee. On each ticket sold online we keep 8% (at least 0.60 EUR), and 10% on a gifted class; the rest goes straight to your Mollie or Stripe account. Mollie serves businesses in the European Economic Area, Switzerland and the United Kingdom ([list of countries](https://help.mollie.com/hc/en-us/articles/115002116105)); elsewhere, for example in the US, connect Stripe. The Pro plan (25 EUR per month or 250 EUR per year, one venue) and the Pro Multi plan (35 EUR per month or 350 EUR per year for the first venue, plus 25 EUR per month for each extra venue, up to 5) remove the percentage on tickets, bring gifting down to 5% and add your logo on the page and tickets, PayPal, WhatsApp and SMS reminders, PDF flyers in 7 languages, social media copy and customisable emails.

Main features:

* Dates, times, seats left and prices on your own pages, with separate prices for adults and children if you want them.
* Single or recurring classes, with a seat limit and a booking deadline.
* Gift a class: the buyer sends the voucher by email or WhatsApp, on the day they choose.
* QR check-in at the door from any phone, iPhone included.
* Allergies and intolerances declared by guests arrive in the booking email.
* Online classes by video call, with the time shown in each guest's timezone.
* Multilingual class pages with WPML or Polylang, and booking emails in seven languages.
* Works next to our mee-table plugin: it reads the mee-table venue, read only, and fills in the venue form for you.
* Works next to any other booking plugin: it does not touch tables, menus or reservations.

Tickets are paid in advance: adult tickets start at 10 EUR, children's tickets at 5 EUR when booked with an adult.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/` or install via the WordPress plugin directory.
2. Activate the plugin through the 'Plugins' menu.
3. Open **mee-class -> Locations** and create your venue. No account and no key are needed.
4. Add the `[mee-class]` shortcode to any page to show the booking widget.

== External services ==

* **mee-table.com:** The plugin is a client for the mee-table service at `api.mee-table.com`, which performs the booking, seat and payment processing. When the owner creates a venue, its name, address, contact details and the site URL are sent there. Venue and booking settings are stored there on certified infrastructure (Oracle Cloud and Supabase), over encrypted connections. When a guest books, their name, email, phone, number of participants, selected event or class, and booking details are sent to process the booking. For classes, this can include allergy or intolerance notes. Read the [mee-table Privacy Policy](https://mee-table.com/privacy) and [Terms](https://mee-table.com/terms).
* **mee-table.com, Pro plans only:** an owner on Pro or Pro Multi can enter the code from their mee-table.com dashboard. Only then, once when it is entered and once a day, the plugin asks `https://api.mee-table.com/api/license/validate` which plan the account has. Data sent: the site URL, that code and the product name. The plan changes what the service charges and shows (commission, branding), not what the plugin can do. Until a code is entered this call never happens.
* **Mollie:** Processes payments for venues that connect Mollie; available methods depend on the Mollie account. Read [Mollie's Privacy Policy](https://www.mollie.com/legal/privacy).
* **Stripe:** Processes card payments for venues that connect Stripe Connect. Read [Stripe's Privacy Policy](https://stripe.com/privacy).
* **PayPal:** Processes payments when the venue enables PayPal on Pro or Pro Multi. Read [PayPal's Privacy Policy](https://www.paypal.com/it/legalhub/paypal/privacy-full).

**SMS providers: only when configured and for messages the owner sends**

If an SMS provider is configured, the guest's phone number and reminder text are sent to that provider. Scheduled reminders are dispatched by the mee-table backend. The **Send test SMS** button sends one message directly from the WordPress site to the selected provider, using the credentials entered by the owner. No SMS provider is contacted until it is selected and configured. The panel also supports a custom HTTP gateway: the same phone number and message are sent to the endpoint entered by the owner.

Built-in providers:

* **Twilio:** [Terms](https://www.twilio.com/en-us/legal/tos) | [Privacy](https://www.twilio.com/en-us/legal/privacy)
* **Skebby (Commify Italia S.r.l.):** [Terms](https://www.skebby.it/wp-content/uploads/Contratto-SKEBBY.pdf) | [Privacy](https://www.skebby.it/wp-content/uploads/Informativa-Privacy-Estesa-SKEBBY.pdf)
* **Aruba SMS:** [Terms](https://hosting.aruba.it/documents/term_conditions/condizioni_fornitura_servizisms_aruba-it_v-1-2.aspx) | [Privacy](https://www.aruba.it/documents/tc-files/it/11_it_privacy_policy_aruba_spa.aspx)
* **Brevo:** [Terms](https://www.brevo.com/legal/termsofuse/) | [Privacy](https://www.brevo.com/legal/privacypolicy/)
* **Vonage/Nexmo:** its SMS endpoint uses the legacy `nexmo.com` domain. [Terms](https://www.vonage.com/legal/communications-apis/terms-of-use/) | [Privacy](https://www.vonage.com/legal/privacy-policy/)
* **SMSGate Android gateway:** only if the owner selects this route, installs the free app and saves its username and password. The site sends the reminder text and guest phone number to `https://api.sms-gate.app/3rdparty/v1`; SMSGate forwards the message to the app on the owner's Android phone, and the message leaves from the owner's SIM. This happens only for messages the owner sends. SMSGate is an open-source project (app: https://github.com/capcom6/android-sms-gateway) and its authors run the cloud service. [Terms](https://sms-gate.app/terms-of-service/) | [Privacy](https://docs.sms-gate.app/privacy/policy/)

For a custom HTTP gateway, the endpoint is entered by the owner. The owner should review that provider's terms and privacy policy.

* **WhatsApp / Meta:** If the owner connects WhatsApp Business and enables reminders, the guest's phone number and reminder message are sent through that account. When the owner creates message templates or sends a test, the plugin contacts `graph.facebook.com` with the owner's credentials and `api.mee-table.com` to retrieve the message text. Read [Meta's Privacy Policy](https://www.facebook.com/privacy/policy) and [Terms](https://www.facebook.com/legal/terms).

== Frequently Asked Questions ==

= Is there a free plan? =

Yes. The free plan has no monthly fee: instead, an 8% platform fee is deducted from each ticket paid through your connected Mollie or Stripe account, with a minimum of 0.60 EUR per ticket. A connected Mollie or Stripe account is required even on the free plan because that is how the commission is collected. The free plan shows the mee-class branding on the booking page and on tickets.

= Is there a minimum ticket price? =

Yes. mee-class sells real classes with a teacher, always paid in advance: adult tickets start at 10 EUR. Children's tickets can start at 5 EUR, but only in the same booking as at least one adult (up to 3 children per adult). Free events are not supported: they do not need a booking system.

= What do the paid plans include? =

Pro (one venue) costs 25 EUR per month or 250 EUR per year. Pro Multi costs 35 EUR per month or 350 EUR per year for the first venue, and each extra venue adds 25 EUR per month, up to 5 venues. Zero commission on all tickets, your logo on the booking page and tickets, PayPal, WhatsApp reminders, SMS reminders, PDF flyers in 7 languages, social media copy, SEO-friendly multilingual booking pages, and full email customisation.

= Do I need a Mollie account? =

The payment method depends on the venue: it connects Mollie or Stripe, whichever it prefers. Mollie only opens accounts for businesses based in the European Economic Area, Switzerland and the United Kingdom ([see Mollie's list of countries](https://help.mollie.com/hc/en-us/articles/115002116105)), so a venue elsewhere, for example in the US, connects Stripe. PayPal is available on eligible plans when enabled. The checkout only offers a method supported and connected for that venue.

= Can a guest give a class as a gift? Does it arrive on WhatsApp? =

Yes. The buyer adds the recipient's name, email and phone. If they add the email, the voucher is emailed to the recipient right after payment. The buyer can also choose the day the email goes out ("Send on"), from tomorrow up to 90 days ahead, for example for a birthday: it is sent that morning at 9:00. After payment a window opens with a green WhatsApp button: WhatsApp opens with the message ready and the buyer taps send. The WhatsApp message is not sent automatically and cannot be scheduled. The person who receives the voucher chooses the date of the class. Gifting a class is included in Pro and Pro Multi, with a fixed 5% fee on each gift, never more than 10 EUR per gift; on the free plan you can sell it too, with a 10% fee per gift and no cap. The buyer chooses an amount (a credit in euros, from 5 to 300) and the recipient spends it when booking a class: the voucher is valid only on classes and lasts 12 months from the day of purchase. In the plugin, under Classes, you can turn the gift off and choose which amounts to offer. Gift vouchers are paid by card with Mollie or Stripe and are non-refundable.

= Does this plugin store guest data on my WordPress server? =

No: booking, seat and payment data is stored on the mee-table SaaS backend (`api.mee-table.com`), not in your WordPress database.

== Privacy ==

The plugin sends the site URL, venue and booking settings to `https://api.mee-table.com`. The service stores this data on certified infrastructure (Oracle Cloud and Supabase), over encrypted connections. At booking time, the guest's name, email, phone, number of participants, selected event or class and booking details are sent there to process the booking. For classes, this can include allergy or intolerance notes. Payments are processed by the connected provider available to that venue: Mollie or Stripe, whichever the venue connected, or PayPal on eligible plans. If enabled by the owner, SMS reminders go through the configured provider described under External services above; the guest's phone number and message are sent to that provider. WhatsApp reminders go through the owner's connected WhatsApp Business account. These providers process the data needed to deliver each payment or reminder. No data is sold, shared with third parties for marketing, or used for advertising. For details, read the [mee-table Privacy Policy](https://mee-table.com/privacy).

== Screenshots ==

1. The booking page: dates, seats left, prices for adults and children, and the summary before payment.
2. The ticket with the QR code that guests receive by email.
3. Class scheduling in the WordPress panel: dates, times, seats and prices.
4. The door check-in: scan the QR code and see at once who has paid.

== Changelog ==

= 1.0 =
First release on WordPress.org: event ticketing and class booking with online payment, QR tickets, door check-in, online classes with timezones, multilingual booking pages and WhatsApp reminders.
