Skip to main content

Sito

Memory game

Wordpress​

Ci sono 3 sezioni principali su wordpress:

Games​

Nella sezione games ci sono i giochi attualmente on line raggiungibili su https://info.malta-vacanze.it/game/{slug-del-gioco}. Sulla root c'è il gioco di default General Consumer

C'è una cartella game sullo spazio in cui si trova anche Wordpress, questo per aggiungere i metatag per il SEO. Il gioco viene inserito nella pagina tramite iframe.

Forms​

Su Forms ci sono le impostazioni per le form di raccolta lead raggiungibili su https://info.malta-vacanze.it/form/{slug-della-form}.

Form builder

La sezione Form builder è inutilizzata, era stata creata in un primo momento ma non andava bene.

La pagina /form è stata spostata da React ad una pagina PHP nella cartella form nello stesso spazio in cui risiede Wordpress. Questo per questioni di SEO che erano impedite dalla SPA quale era prima in React.

Viene fatto il parsing dell'HTML inserito nel campo Pixel perfect e ricreata praticamente la stessa form. È tutto in functions.php del tema wordpress.

All'invio della form c'è una chiamata sincrona che salva i dati anche nella sezione Leads di Wordpress. In più viene inviato un messaggio da Whatsapp Business tramite Spoki (functions.php ~L:252).

Per le automazioni di Spoki guardare l'account di MS3 in cui ce n'è una di test, dovrebbe chiamarsi "Malta".

Sempre per Spoki, ricordarsi che ora nome, cognome e mail sono legati alle label del form. Guardare i controlli in functions.php ~L:236, queste label vengono inviate per essere salvate nella sezione Leads. Il recupero di queste label si trova in /form/index.php ~L:194.

Leads​

I leads sono le richieste che arrivano dal form con esportazione CSV, in realtà questa sezione non credo sia più utilizzata dall'ingresso di Pixel Perfect, ma l'ho lasciata lo stesso.

Spoki​

info

Lato server, i dati vengono identificati dalla LABEL e non dal NAME dell'input. Questo perchè il form viene da PixelPerfect e i NAME non sono prevedibili. Quindi le LABEL devono essere Nome Cognome Email

info

Quando si modifica un template messaggio bisogna aspettare l'approvazione di whatsapp


Caricamento delle modifiche

Dopo npm run build caricare i file nella root dell'FTP, li si trova il gioco.

Test in locale

Per testare in locale le pagine del gioco mettere app-game al posto di game nell'url. Guardare comunque index.js per le routes.

Contest​

È stato aggiunto un campo "Abilita tentativi" nel gioco. Inserendo un numero in questo campo viene attivata la modalità Contest.

A quel punto una volta finiti i tentativi o al momento della vittoria, viene fatta una chiamata che salva il risultato nella tabella contest del db.

All'inizio del gioco, se il contest è attivo (la funzione hasTentativi() serve a vedere se il contest è attivo), viene fatta una chiamata che controllare se l'utente si trova nella tabella contest e il campo win è ancora null.

La registrazione nella tabella contest avviene al momento della compilazione del form e il campo win viene settato a null (vuol dire che l'utente non ha ancora giocato). Alla fine del gioco viene aggiornato il campo win con 0 o 1.

Alla fine del contest la tabella va svuotata altrimenti un utente puo partecipare una sola volta al contest e in futuro verrebbe bloccato subito.

info

Per testare in locale il contest, una volta attivato, registrarsi sulla form e vedere se viene settato un cookie malta_game_email. A quel punto tornare sul gioco con il parametro GET email tipo http://localhost:3000/app-game/general?email=la_mail_che_sta_nel_cookie.

Questa cosa viene fatta in automatico in produzione perchè il gioco è un iframe. Quindi in PHP controllo la presenza del cookie e lo passo direttamente all'src dell'iframe.