Guida tecnica
Plugin Nyxia Camper Booking (WordPress)
Questa pagina riassume il comportamento del codice del plugin (cartella del prodotto: struttura modulare PHP, REST nyx-camper/v2, shortcode, area amministrativa). Versione di riferimento nel header del plugin: 0.6.4.
Ruolo del plugin sul sito
Il plugin funge da vetrina e ponte operativo tra il sito pubblico WordPress e la logica di disponibilità in tempo reale: il visitatore usa il form (shortcode) sulle pagine del tema; il frontend chiama le API REST per elencare le piazzole libere, calcolare il preventivo e inviare la prenotazione. In questo senso il sito WP non “simula” la disponibilità: la interroga attraverso endpoint dedicati, con validazione lato server e protezioni (nonce, throttle, honeypot dove previsto).
Requisiti
| Componente | Versione minima |
|---|---|
| WordPress | 5.9+ |
| PHP | 7.4+ |
| Database | MySQL 5.7+ / MariaDB 10.3+ |
Installazione
- Copia la cartella del plugin in
wp-content/plugins/(es.nyxia-camper-booking/) oppure carica lo ZIP da Plugin → Aggiungi nuovo → Carica plugin. - Attiva Nyxia Camper Booking dalla schermata Plugin.
- L’attivazione esegue la routine prevista dalla classe Activator (tabelle e strutture necessarie — vedi anche README del plugin per i nomi delle tabelle).
- Configura almeno le piazzole da Camper Booking → Inventory e le regole di prezzo / blackout prima di pubblicare lo shortcode.
Configurazione base (area amministrativa)
Il menu principale è Camper Booking (capability manage_options). Le schede disponibili nel codice includono:
| Scheda | Contenuto tipico |
|---|---|
| Dashboard | Panoramica operativa e accessi rapidi. |
| Inventory | Gestione piazzole / inventario con calendario per unità. |
| Rules (Regole prezzo) | Listini stagionali, modelli di pricing, soggiorni brevi. |
| Blackouts | Periodi chiusi o non prenotabili. |
| Payments | Gateway (Stripe, SumUp, PayPal), URL webhook, depositi e chiavi. |
| Translations | Stringhe frontend e messaggi multilingua. |
| Emails | Template email admin/cliente e log di invio. |
| SMTP | Configurazione invio mail affidabile (SPF/DKIM consigliati). |
| Settings | Lingua frontend/admin, valuta, email contatto, opzioni generali (nyx_camper_options e correlate). |
| Style | Adattamento CSS / classi pulsanti al tema. |
| Readme | Documentazione inline fornita con il plugin. |
Shortcode e integrazione nel tema
Lo shortcode registrato è [nyx_camper_booking] (alias legacy [camper_booking]). Output: contenitore #nyx-camper-app con form di ricerca date, lista risultati e flusso prenotazione.
| Attributo | Default | Note |
|---|---|---|
title | Da traduzioni | Titolo del pannello ricerca. |
wrapper_class | (vuoto) | Classe CSS aggiuntiva sul wrapper dell’app. |
[nyx_camper_booking]
[nyx_camper_booking title="Prenota la tua piazzola" wrapper_class="mia-classe"]Gli asset frontend (CSS/JS) sono registrati in wp_enqueue_scripts e caricati quando lo shortcode è presente; i dati per le chiamate REST sono passati tramite wp_localize_script sull’oggetto NyxCamperData (endpoint REST, stringhe i18n, classi stile pulsanti, ecc.).
REST API pubblica (namespace)
Base: /wp-json/nyx-camper/v2/ sullo stesso dominio del sito.
| Metodo | Route | Scopo |
|---|---|---|
| GET | /availability | Piazzole disponibili per intervallo date (query parametri). |
| GET | /quote | Preventivo (ospiti, servizi, ecc.). |
| GET | /nonce | Nonce per protezione CSRF su POST /book. |
| POST | /book | Creazione prenotazione (JSON + nonce). |
| GET | /payment/verify | Verifica dopo redirect post-pagamento. |
| POST | /webhook/stripe, /webhook/sumup, /webhook/paypal | Endpoint gateway (server-to-server). |
Le route pubbliche sono soggette a throttle per IP (vedi implementazione in class-rest.php). Non bloccare GET /nonce a livello WAF se il form deve funzionare.
È prevista una whitelist stretta su rest_authentication_errors per evitare che altri plugin interrompano solo queste route — non l’intero REST di WordPress.
Pagamenti
Checkout hosted (Stripe, SumUp, PayPal): nessun dato carta sul tuo server. Configura gli URL webhook nel pannello del provider come indicato in Camper Booking → Payments e nella documentazione inclusa (README.md del plugin).
Tabelle database (estratto)
| Tabella (prefisso WP) | Uso |
|---|---|
nyx_camper_bookings | Prenotazioni, totali, stato, dati cliente. |
nyx_camper_pricing_rules | Regole di prezzo stagionali. |
nyx_camper_blackouts | Blocchi date. |
nyx_camper_payment_links | Token e stato collegati ai pagamenti. |
Sicurezza (sintesi)
POST /bookcon nonce, honeypot, validazione prezzi lato server; rate limit opzionale.- Webhook firmati o verificati secondo il gateway.
- CPT/tassonomie piazzole con
show_in_restdisabilitato dove previsto per ridurre enumerazione. - Dettaglio: file
SECURITY.mdnel pacchetto plugin.
Documentazione generata per la landing Nyxia Camper — non sostituisce il README e la guida inclusa nel pacchetto plugin.