=== Verenigingsplanner ===
Contributors: mhagwitjes
Tags: booking, reservations, rooms, associations, sports club
Requires at least: 5.6
Tested up to: 6.9
Stable tag: 1.4.1
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Embed room booking, match schedules, volunteer sign-ups, member registration and more from Verenigingsplanner on your WordPress website.

== Description ==

This is the official plugin for Verenigingsplanner (https://www.verenigingsplanner.nl), developed and maintained by the Verenigingsplanner team.

The Verenigingsplanner plugin lets you embed various modules from your Verenigingsplanner account directly on your WordPress website using simple shortcodes. Visitors can make room reservations, buy event tickets, sign up as volunteers, register as a new member, or see today's match schedule – all without leaving your site.

**Features:**

* Room and workshop booking widget
* Google Calendar embed
* Today's match schedule board (great for clubhouse TV screens)
* Event ticket sales
* Volunteer and neighbourhood task sign-ups
* Member registration form
* Lending module
* Configurable primary colour
* All widgets load only on pages where their shortcode is placed (no impact on other pages)

**Available shortcodes:**

**Room & Workshop Booking**

    [verenigingsplanner]

Optional parameters:

* `mode="rooms"` — Show only rooms (omit to show both rooms and workshops)
* `mode="workshops"` — Show only workshops
* `room="room-id"` — Embed a single specific room directly
* `workshop="workshop-id"` — Embed a single specific workshop directly

**Google Calendar**

    [verenigingsplanner_calendar]

Optional parameters:

* `mode="MONTH"` — Month view (default)
* `mode="WEEK"` — Week view
* `mode="AGENDA"` — Agenda / list view
* `height="600"` — Height in pixels (default: 600)
* `show_title="0"` — Hide the calendar title (default: 1 = visible)
* `show_nav="0"` — Hide the navigation arrows (default: 1 = visible)
* `show_tabs="0"` — Hide the Day/Week/Month tabs (default: 1 = visible)

**Match Schedule Board**

    [verenigingsplanner_wedstrijddag]

Optional parameters:

* `height="700"` — Height in pixels (default: 700)
* `date="20-04-2025"` — Show schedule for a specific date instead of today (format: DD-MM-YYYY)

Tip: for a full-screen clubhouse TV display, open `https://www.verenigingsplanner.nl/wedstrijddag?apiKey=YOUR_API_KEY` directly in a browser.

**Event Ticket Sales**

    [verenigingsplanner_tickets]

Optional parameters:

* `event="event-id"` — Embed a single specific event instead of the full events overview

**Volunteer & Neighbourhood Tasks**

    [verenigingsplanner_vrijwilligers]

Optional parameters:

* `mode="verenigingstaken"` — Show only volunteer tasks
* `mode="buurttaken"` — Show only neighbourhood tasks
* Omit `mode` to show both tabs side by side

**Member Registration**

    [verenigingsplanner_leden]

Optional parameters:

* `height="700"` — Height in pixels (default: 700)

**Lending Module**

    [verenigingsplanner_uitleen]

Optional parameters:

* `height="800"` — Height in pixels (default: 800)

**Newsletter Sign-up**

    [verenigingsplanner_nieuwsbrief]

Optional parameters:

* `height="400"` — Height in pixels (default: 400)

== External Services ==

This plugin connects to the Verenigingsplanner platform (https://www.verenigingsplanner.nl) to render widgets on your WordPress site.

**What service is used:**
All shortcodes load widget scripts and data from `https://www.verenigingsplanner.nl`. This is the Verenigingsplanner SaaS platform — the same service this plugin is built for.

**What data is sent and when:**
* Your organisation's API key is sent with every widget request to identify which organisation's data to display. The API key is stored locally in your WordPress database and transmitted only to `www.verenigingsplanner.nl`.
* When a visitor submits a form through a widget (e.g. a booking request, volunteer sign-up, member registration), the form data they enter is sent to `www.verenigingsplanner.nl` for processing by your organisation's admin.
* No visitor data is collected silently or without user action. No tracking cookies or analytics are placed by the plugin.

**Privacy policy:** https://www.verenigingsplanner.nl/privacy
**Terms of service:** https://www.verenigingsplanner.nl/voorwaarden

== Installation ==

1. Upload the plugin files to the `/wp-content/plugins/verenigingsplanner` directory, or install the plugin directly via the WordPress Plugins screen.
2. Activate the plugin via the Plugins screen in WordPress.
3. Go to Settings → Verenigingsplanner and enter your API key.
4. Add a shortcode to any page or post.

Your API key can be found in your Verenigingsplanner admin panel under **Settings → API**.

== Frequently Asked Questions ==

= Where do I find my API key? =

Log in to your Verenigingsplanner admin dashboard and go to Settings. You can generate an API key there.

= Can I customise the appearance? =

Yes, you can set the primary colour in the plugin settings. The widget also automatically inherits the font of your theme.

= Are bookings confirmed immediately? =

No, booking requests appear in your Verenigingsplanner dashboard for you to confirm. The visitor receives an automatic confirmation email once you approve the request.

= How does the match schedule board work? =

The `[verenigingsplanner_wedstrijddag]` shortcode embeds a live board showing today's matches including team names, kick-off times, fields and opponent logos. It refreshes automatically every minute. You can also display it full-screen on a clubhouse TV by opening `https://www.verenigingsplanner.nl/wedstrijddag?apiKey=YOUR_API_KEY` in a browser.

= Do the widgets slow down my website? =

No. Each widget script is only loaded on pages where the corresponding shortcode is placed. Pages without shortcodes are not affected.

= Does the plugin track visitors? =

No. The plugin does not place any tracking cookies or collect any visitor data without explicit user action. Data is only transmitted to Verenigingsplanner when a visitor actively submits a form (e.g. a booking or sign-up).

== Screenshots ==

1. Plugin settings page
2. Room booking widget
3. Match schedule board on a clubhouse TV screen
4. Volunteer sign-up widget

== Support ==

For questions, problems or feature requests, please visit the support page at https://www.verenigingsplanner.nl or use the WordPress.org support forum for this plugin.

Your API key and account details can be managed in your Verenigingsplanner admin panel at https://www.verenigingsplanner.nl.

== Changelog ==

= 1.4.1 =
* Updated: Full shortcode reference with all optional parameters added to the plugin description
* Added: Support section with contact links

= 1.4.0 =
* Fixed: Removed invalid contributor username; only mhagwitjes listed
* Added: Dutch (nl_NL) translation
* Added: Full internationalisation (i18n) support — all strings now translatable

= 1.3.0 =
* Added: External Services disclosure section to readme (Guideline 6 compliance)
* Added: `mhagwitjes` to contributors list
* Added: `[verenigingsplanner_nieuwsbrief]` shortcode documented in readme
* Updated: Clarified this is the official plugin by the Verenigingsplanner team

= 1.2.0 =
* Fix: Added sanitize_callback to all register_setting() calls (sanitize_text_field for API key, sanitize_hex_color for primary color)
* Updated: Tested up to WordPress 6.9

= 1.1.0 =
* New: `[verenigingsplanner_wedstrijddag]` shortcode for embedding today's match schedule board
* New: Lending module shortcode `[verenigingsplanner_uitleen]`
* Improvement: Widget scripts are now only loaded on pages that use a shortcode
* Improvement: Added uninstall hook to clean up plugin settings on removal
* Fix: Corrected plugin name typos in documentation
* Updated: Tested up to WordPress 6.7

= 1.0.0 =
* Initial release

== Upgrade Notice ==

= 1.4.1 =
Expands the shortcode reference in the plugin description. No functional changes.

= 1.4.0 =
Adds Dutch translation and fixes contributor username. No functional changes.

= 1.3.0 =
Adds External Services disclosure required by WordPress.org guidelines. No functional changes.

= 1.2.0 =
Security fix: adds proper input sanitization to plugin settings. Update recommended.

= 1.1.0 =
Adds the match schedule board shortcode and improves performance by loading widget scripts only when needed.
