HDWebmobile Prenotazioni e Appuntamenti
Vendi servizi e appuntamenti prenotabili tramite WooCommerce, con una capacità per fascia oraria che non può mai essere sovravenduta.
Descrizione
HDWebmobile Prenotazioni e Appuntamenti trasforma qualsiasi prodotto WooCommerce semplice in un servizio prenotabile. I clienti scelgono una data e una fascia oraria disponibile nella pagina del prodotto; la prenotazione viene confermata nel momento in cui il loro ordine viene completato e possono visualizzarla o annullarla in seguito nella sezione Il mio account.
Perché esiste questo plugin
Un plugin di prenotazione concorrente (Amelia) presentava una vulnerabilità IDOR/mass-assignment autenticata (CVE-2026-2931, CVSS 8.8): il suo endpoint "aggiorna il mio profilo di prenotazione" accettava un campo fornito dal client che collegava il record di prenotazione a un ID utente WordPress, senza alcun controllo che puntasse ancora all'account del richiedente — consentendo a un cliente con privilegi bassi di reimpostare la password di qualsiasi utente WordPress, incluso un amministratore. Questo plugin chiude quella classe di vulnerabilità per costruzione:
- Il proprietario di una prenotazione viene scritto in un unico punto — al completamento dell'ordine, dall'ID cliente dell'ordine stesso — e mai più. Non esiste alcun percorso di codice "aggiorna prenotazione" in questo plugin che accetti un ID cliente, un ID utente o qualsiasi campo simile da una richiesta.
- Questo plugin non tocca mai una password WordPress. Non esiste alcun percorso di codice che chiami
wp_set_password() o qualcosa di simile, in assoluto — la password di un cliente rimane interamente di competenza della schermata Dettagli account del nucleo di WordPress.
- Un cliente può solo vedere o annullare le proprie prenotazioni, limitate dal proprio account connesso direttamente nella query del database — mai da un ID preso dalla richiesta.
- La capacità per fascia oraria è applicata con una rivendicazione atomica e sicura contro le race condition (un vincolo di unicità del database), così due clienti non possono mai essere entrambi confermati nella stessa fascia oraria oltre la sua capacità configurata. L'annullamento di una prenotazione libera correttamente la sua fascia per il riutilizzo, mentre la riga annullata viene conservata per la cronologia di audit.
Funzionalità
- Trasforma qualsiasi prodotto semplice in un servizio prenotabile dalla sua scheda Dati prodotto > Prenotazione
- Giorni disponibili, fasce orarie, tempo di anticipo e numero di giorni in anticipo configurabili
- Capacità per fascia oraria — una fascia smette di essere offerta una volta piena
- La prenotazione viene confermata automaticamente quando l'ordine viene contrassegnato come Completato
- Una scheda "Prenotazioni" nella sezione Il mio account per visualizzare e annullare le prenotazioni future
- Se una fascia si riempie tra l'aggiunta al carrello e il pagamento, l'ordine viene comunque completato normalmente e l'amministratore viene avvisato via email per aiutare a riprogrammare — nessuna prenotazione viene mai doppiamente prenotata
Limitazioni (v1)
- Solo prodotti semplici — nessun supporto per prodotti variabili
- Nessuna assegnazione di personale/risorse — la capacità di una fascia è un unico numero condiviso, non per singolo membro dello staff
- Nessuna sincronizzazione del calendario (Google Calendar, iCal, ecc.)
Installazione
- Carica il plugin in
/wp-content/plugins/hdwebmobile-booking-appointments oppure installalo tramite la schermata dei plugin di WordPress.
- Attiva il plugin. WooCommerce deve essere già installato e attivo.
- Modifica un prodotto semplice, apri la sua nuova scheda "Prenotazione" sotto Dati prodotto e configura la disponibilità.
Licenza
GPLv2 o successiva. Vedi LICENSE.