NyxiaCamper

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

ComponenteVersione minima
WordPress5.9+
PHP7.4+
DatabaseMySQL 5.7+ / MariaDB 10.3+

Installazione

  1. Copia la cartella del plugin in wp-content/plugins/ (es. nyxia-camper-booking/) oppure carica lo ZIP da Plugin → Aggiungi nuovo → Carica plugin.
  2. Attiva Nyxia Camper Booking dalla schermata Plugin.
  3. L’attivazione esegue la routine prevista dalla classe Activator (tabelle e strutture necessarie — vedi anche README del plugin per i nomi delle tabelle).
  4. 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:

SchedaContenuto tipico
DashboardPanoramica operativa e accessi rapidi.
InventoryGestione piazzole / inventario con calendario per unità.
Rules (Regole prezzo)Listini stagionali, modelli di pricing, soggiorni brevi.
BlackoutsPeriodi chiusi o non prenotabili.
PaymentsGateway (Stripe, SumUp, PayPal), URL webhook, depositi e chiavi.
TranslationsStringhe frontend e messaggi multilingua.
EmailsTemplate email admin/cliente e log di invio.
SMTPConfigurazione invio mail affidabile (SPF/DKIM consigliati).
SettingsLingua frontend/admin, valuta, email contatto, opzioni generali (nyx_camper_options e correlate).
StyleAdattamento CSS / classi pulsanti al tema.
ReadmeDocumentazione 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.

AttributoDefaultNote
titleDa traduzioniTitolo 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.

MetodoRouteScopo
GET/availabilityPiazzole disponibili per intervallo date (query parametri).
GET/quotePreventivo (ospiti, servizi, ecc.).
GET/nonceNonce per protezione CSRF su POST /book.
POST/bookCreazione prenotazione (JSON + nonce).
GET/payment/verifyVerifica dopo redirect post-pagamento.
POST/webhook/stripe, /webhook/sumup, /webhook/paypalEndpoint 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_bookingsPrenotazioni, totali, stato, dati cliente.
nyx_camper_pricing_rulesRegole di prezzo stagionali.
nyx_camper_blackoutsBlocchi date.
nyx_camper_payment_linksToken e stato collegati ai pagamenti.

Sicurezza (sintesi)

  • POST /book con nonce, honeypot, validazione prezzi lato server; rate limit opzionale.
  • Webhook firmati o verificati secondo il gateway.
  • CPT/tassonomie piazzole con show_in_rest disabilitato dove previsto per ridurre enumerazione.
  • Dettaglio: file SECURITY.md nel pacchetto plugin.

Documentazione generata per la landing Nyxia Camper — non sostituisce il README e la guida inclusa nel pacchetto plugin.