HDWebmobile Buchung & Termine
Verkaufen Sie buchbare Dienstleistungen und Termine über WooCommerce, mit einer Kapazität pro Zeitfenster, die niemals überbucht werden kann.
Beschreibung
HDWebmobile Buchung & Termine verwandelt jedes einfache WooCommerce-Produkt in einen buchbaren Dienst. Kunden wählen auf der Produktseite ein verfügbares Datum und Zeitfenster aus; die Buchung wird in dem Moment bestätigt, in dem ihre Bestellung abgeschlossen ist, und sie können sie später unter Mein Konto einsehen oder stornieren.
Warum dieses Plugin existiert
Ein konkurrierendes Buchungs-Plugin (Amelia) hatte eine authentifizierte IDOR/Mass-Assignment-Schwachstelle (CVE-2026-2931, CVSS 8.8): Sein Endpunkt „Buchungsprofil aktualisieren“ akzeptierte ein vom Client geliefertes Feld, das den Buchungsdatensatz mit einer WordPress-Benutzer-ID verknüpfte, ohne zu prüfen, ob es weiterhin auf das eigene Konto des Anfragenden zeigte – wodurch ein Kunde mit niedrigen Rechten das Passwort jedes WordPress-Benutzers zurücksetzen konnte, einschließlich eines Administrators. Dieses Plugin schließt diese Schwachstellenklasse konstruktionsbedingt:
- Der Eigentümer einer Buchung wird an genau einer Stelle geschrieben – beim Abschluss der Bestellung, aus der eigenen Kundennummer der Bestellung – und nie wieder. Es gibt in diesem Plugin keinen „Buchung aktualisieren“-Codepfad, der eine Kundennummer, Benutzer-ID oder ein ähnliches Feld aus einer Anfrage akzeptiert.
- Dieses Plugin berührt niemals ein WordPress-Passwort. Es gibt hier überhaupt keinen Codepfad, der
wp_set_password() oder etwas Ähnliches aufruft – das Passwort eines Kunden bleibt vollständig Sache des eigenen Kontodetails-Bildschirms von WordPress Core.
- Ein Kunde kann nur seine eigenen Buchungen sehen oder stornieren, begrenzt durch sein angemeldetes Konto direkt in der Datenbankabfrage – niemals durch eine aus der Anfrage übernommene ID.
- Die Kapazität pro Zeitfenster wird mit einer atomaren, race-condition-sicheren Reservierung (einer Datenbank-Eindeutigkeitsbeschränkung) durchgesetzt, sodass zwei Kunden niemals beide in dasselbe Zeitfenster über dessen konfigurierte Kapazität hinaus bestätigt werden können. Das Stornieren einer Buchung gibt ihr Zeitfenster korrekt zur Wiederverwendung frei, während die stornierte Zeile selbst für den Prüfverlauf aufbewahrt wird.
Funktionen
- Verwandle jedes einfache Produkt über seinen eigenen Produktdaten > Buchung-Tab in einen buchbaren Dienst
- Konfigurierbare verfügbare Tage, Zeitfenster, Vorlaufzeit und wie viele Tage im Voraus angeboten werden
- Kapazität pro Zeitfenster – ein Zeitfenster wird nicht mehr angeboten, sobald es voll ist
- Die Buchung wird automatisch bestätigt, wenn die Bestellung als Abgeschlossen markiert wird
- Ein „Buchungen“-Tab unter Mein Konto zum Anzeigen und Stornieren kommender Buchungen
- Wenn ein Zeitfenster zwischen „In den Warenkorb“ und dem Checkout voll wird, wird die Bestellung trotzdem normal abgeschlossen und der Administrator per E-Mail benachrichtigt, um bei der Umbuchung zu helfen – eine Buchung wird niemals doppelt vergeben
Einschränkungen (v1)
- Nur einfache Produkte – keine Unterstützung für variable Produkte
- Keine Personal-/Ressourcenzuweisung – die Kapazität eines Zeitfensters ist eine einzige gemeinsame Zahl, nicht pro Mitarbeiter
- Keine Kalendersynchronisierung (Google Kalender, iCal usw.)
Installation
- Laden Sie das Plugin nach
/wp-content/plugins/hdwebmobile-booking-appointments hoch oder installieren Sie es über den WordPress-Plugins-Bildschirm.
- Aktivieren Sie das Plugin. WooCommerce muss bereits installiert und aktiv sein.
- Bearbeiten Sie ein einfaches Produkt, öffnen Sie seinen neuen „Buchung“-Tab unter Produktdaten und konfigurieren Sie die Verfügbarkeit.
Lizenz
GPLv2 oder neuer. Siehe LICENSE.