diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 051fc09..ae37c3a 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- name: Set env
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/v}" >> $GITHUB_ENV
- name: Setup PHP
diff --git a/campi-moduli-italiani.php b/campi-moduli-italiani.php
index 1a7744f..a2de1b0 100644
--- a/campi-moduli-italiani.php
+++ b/campi-moduli-italiani.php
@@ -13,7 +13,7 @@
* Domain Path: /languages
* Plugin URI: https://wordpress.org/plugins/campi-moduli-italiani/
* Description: (Generator of) Fields for Italian CF7 and wpforms modules. The plugin generates specific fields for Italian forms created with Contact Form 7 and wpforms. This version makes available 4 form-tags for CF7 and 2 fields for wpforms: a cascade selection for an Italian municipality (CF7 + wpforms), a select for a state (CF7 + wpforms), an Italian tax code field with validation (CF7 only), a hidden field that allows you to digitally sign e-mails to ensure that they have been sent via the form (CF7 only). The databases are taken from the Istat and Agenzia delle entrate websites. The digital signature on the form data uses the RSA algorithm with a 4096 bit private key. Activation can take a few minutes to download the updated data and to import them into the database .
- * Version: 2.1.0
+ * Version: 2.1.1
* Author: Giuseppe Foti
* Author URI: https://bertocchi28.ddns.net/
* License: GPLv2 or later
@@ -21,7 +21,7 @@
defined( 'ABSPATH' ) || die( 'you do not have access to this page!' );
-define( 'GCMI_VERSION', '2.1.0' );
+define( 'GCMI_VERSION', '2.1.1' );
define( 'GCMI_MINIMUM_WP_VERSION', '5.9' );
define( 'GCMI_MINIMUM_PHP_VERSION', '7.2' );
define( 'GCMI_MINIMUM_CF7_VERSION', '5.1.7' );
diff --git a/readme-it.txt b/readme-it.txt
index 42de3b6..9785b27 100644
--- a/readme-it.txt
+++ b/readme-it.txt
@@ -1,240 +1,244 @@
-=== Campi Moduli Italiani ===
-Contributors: mociofiletto
-Donate link: https://paypal.me/GiuseppeF77
-Tags: Contact Form 7, WPForms, comuni italiani, codice fiscale, firma digitale, multisite
-Requires at least: 5.9
-Tested up to: 6.0
-Requires PHP: 7.2
-Stable tag: 2.1.0
-License: GPLv2 or later
-License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
-
-Plugin per creare campi utili per siti italiani, da utilizzare nei moduli prodotti con Contact Form 7 e WPForms.
-
-== Description ==
-Questo plugin crea dei form-tag per Contact Form 7 e dei campi per WPForms.
-
-= Contact Form 7 =
-In questa versione sono disponibili 4 form-tag (e corrispondenti mail-tag):
-* [comune]: crea una serie di select per la selezione di un comune italiano
-* [cf]: crea un campo per l'inserimento del codice fiscale italiano di una persona fisica
-* [stato]: crea la possibilità di selezionare uno stato
-* [formsign]: crea la possibilità di firmare digitalmente le mail inviate con una chiave privata attribuita ad ogni singolo form
-
-= WPForms =
-Sono disponibili 2 tipi di campi
-* Selezione a cascata di un comune italiano (restituisce il codice comune ISTAT come valore)
-* Un campo per selezionare uno stato (restituisce il codice paese ISTAT come valore)
-
-== Dati utilizzati ==
-Il plugin al momento dell'attivazione scarica i dati che utilizza dal sito web dell'Istat e da quello dell'Agenzia delle entrate. Questi dati sono aggiornabili dalla console di amministrazione.
-Il download dei dati e l'inserimento degli stessi nel database richiede diversi minuti: pazientate durante la fase di attivazione.
-La selezione dei comuni è stata creata partendo dal codice di https://wordpress.org/plugins/regione-provincia-comune/
-
-Questo plugin utilizza dati resi disponibili dall'ISTAT e dall'Agenzia delle entrate.
-In particolare, vengono acquisiti e memorizzati dati messi a disposizione a queste URL:
-
-* https://www.istat.it/it/archivio/6789
-* https://www.istat.it/it/archivio/6747
-* https://www1.agenziaentrate.gov.it/documentazione/versamenti/codici/ricerca/VisualizzaTabella.php?ArcName=COM-ICI
-
-I dati pubblicati sul sito dell'ISTAT sono coperti da licenza Creative Commons - Attribuzione (CC-by) (https://creativecommons.org/licenses/by/3.0/it/), come indicato qui: https://www.istat.it/it/note-legali
-I dati prelevati dal sito web dell'Agenzia delle entrate sono di pubblico dominio e costituiscono una banca dati pubblica resa disponibile per consentire gli adempimenti tributari e, più in generale, per consentire l'identificazione delle persone fisiche presso le pubbliche amministrazioni italiane, tramite il codice fiscale.
-I dati presenti sul sito dell'Agenzia delle entrate possono essere liberamente immagazzinati nel proprio computer o stampati (https://www.agenziaentrate.gov.it/portale/web/guest/privacy). I dati sono gestiti dall'Ufficio Archivio anagrafico dell'Agenzia delle entrate.
-Questo plugin utilizza i dati prelevati dal sito internet dell'Agenzia delle entrate esclusivamente al fine di effettuare un controllo di regolarità formale del codice fiscale.
-Questo plugin non riporta nelle pagine esterne del sito internet su cui è utilizzato, nessun collegamento né al sito dell'Agenzia delle entrate, né al sito dell'ISTAT; in particolare non viene effettuata alcuna forma di link diretto, né di deep linking.
-
-== Come utilizzare i form-tag in Contact Form 7 ==
-[comune]
-`[comune]` dispone di un gestore nell'area di creazione dei form CF7 che consente di impostare le varie opzioni.
-In particolare è possibile impostare l'attributo "kind" a "tutti"; "attuali","evidenza_cessati". Nel primo e nel terzo caso, con modalità differenti, vengono proposti sia i comuni attualmente esistenti, sia quelli cessati in precedenza (utile, ad esempio, per consentire la selezione del Comune di nascita). Nella modalità "attuali", è invece consentita solo la selezione dei comuni attualmente esistenti (utile per consentire la selezione del Comune di residenza / domicilio).
-Inoltre è possibile settare l'opzione "comu_details", per mostrare dopo la cascata di select un'icona che consente la visualizzazione di una tabella modale con i dettagli statistici dell'unità territoriale.
-Il valore restituito dal gruppo è sempre il codice ISTAT del comune selezionato. Il corrispondente mail-tag, converte tale valore nella denominazione del comune seguita dall'indicazione della targa automobilistica della provincia.
-Dalla versione 1.1.1 vengono creati anche dei campi hidden popolati con le stringhe corrispondenti alla denominazione di regione, provincia e comune selezionati, utili per essere utilizzanti in plugin che catturano direttamente i dati trasmessi dal form (come "Send PDF for Contact Form 7")
-La cascata di select, può essere utilizzata anche all'esterno di CF7, mediante lo shortcode [comune] (opzioni analoge a quelle del form-tag per Contact Form 7).
-
-[cf]
-`[cf]` dispone di un gestore nell'area di creazione dei form CF7 che consente di impostare le varie opzioni.
-In particolare è possibile impostare varie opzioni di validazione consentendo di riscontrare la corrispondenza del codice fiscale con altri campi del modulo.
-Nello specifico è possibile verificare che il codice fiscale corrisponda con lo stato estero di nascita (selezionato mediante una select [stato]), il comune italiano di nascita (selezionato mediante una cascata di select [comune]), il sesso (indicando il nome di un campo form che restituisca "M" o "F"), la data di nascita. Nel caso in cui per selezionare la data di nascita si utilizzino più campi, uno per il giorno, uno per il mese e uno per l'anno, è possibile riscontrare la corrispondenza del codice fiscale con questi valori.
-
-[stato]
-`[stato]` dispone di un gestore nell'area di creazione dei form CF7 che consente di impostare le varie opzioni.
-In particolare, è possibile impostare la selezione dei soli stati attualmente esistenti (opzione "only_current") ed è possibile impostare l'opzione "use_continent" per avere i valori della select suddivisi per continente. Il campo restituisce sempre il codice ISTAT dello Stato estero (codice 100 per l'Italia). Il codice ISTAT è il tipo di dato atteso da [cf], per il riscontro del codice fiscale.
-
-[formsign]
-`[formsign]` _NON_ dispone di un gestore nell'area di creazione dei form CF7.
-Per utilizzarlo è sufficiente inserire nel proprio modulo il tag seguito dal nome del campo: ad esempio [formsign firmadigitale]. Questo tag, creerà nel modulo un campo hidden con attributo name="firmadigitale" e nessun valore.
-Per utilizzare il codice è anche necessario inserire nella mail o nelle mail che il form invia il campo [firmadigitale] (si consiglia al termine della mail).
-In questo modo in coda alla mail verrà inserita una sequenza di due righe contenenti:
-un hash md5 dei dati trasmessi con il modulo (non del contenuto dei files eventualmente allegati)
-una firma digitale dell'hash.
-La firma viene apposta mediante la generazione di una coppia di chiavi RSA, attribuita a ciascun form.
-Mediante il riscontro dell'hash e della firma, sarà possibile verificare che le mail siano state effettivamente spedite dal form e che i dati trasmessi dall'utente corrispondano a quanto registato.
-Per agevolare il riscontro dei dati, è preferibile utilizzare "Flamingo" per l'archiviazione dei messaggi inviati. Infatti, nella schermata di admin di Flamingo viene creato uno specifico box che consente il riscontro dell'hash e della firma digitale inseriti nella mail.
-Il sistema è utile nel caso in cui mediante il form si preveda di ricevere domande di iscrizione o candidature etc.. ed evita contestazioni in merito ai dati che i candidati pretendono di aver inviato e quanto registrato dal sistema in Flamingo.
-
-## Code
-Vuoi controllare il codice? [https://github.com/MocioF/campi-moduli-italiani](https://github.com/MocioF/campi-moduli-italiani)
-
-== Installazione ==
-
-= Installazione automatica =
-
-1. Pannello di amministrazione plugin e opzione `aggiungi nuovo`.
-2. Ricerca nella casella di testo `campi moduli italiani`.
-3. Posizionati sulla descrizione di questo plugin e seleziona installa.
-4. Attiva il plugin dal pannello di amministrazione di WordPress.
-NOTA: l'attivazione richiede diversi minuti, perché vengono scaricate le tabelle di dati aggiornati dai siti ufficiali (Istat e Agenzia delle entrate e poi i dati vengono importati nel database)
-
-= Installazione manuale file ZIP =
-
-1. Scarica il file .ZIP da questa schermata.
-2. Seleziona opzione aggiungi plugin dal pannello di amministrazione.
-3. Seleziona opzione in alto `upload` e seleziona il file che hai scaricato.
-4. Conferma installazione e attivazione plugin dal pannello di amministrazione.
-NOTA: l'attivazione richiede diversi minuti, perché vengono scaricate le tabelle di dati aggiornati dai siti ufficiali (Istat e Agenzia delle entrate e poi i dati vengono importati nel database)
-
-= Installazione manuale FTP =
-
-1. Scarica il file .ZIP da questa schermata e decomprimi.
-2. Accedi in FTP alla tua cartella presente sul server web.
-3. Copia tutta la cartella `campi-moduli-italiani` nella directory `/wp-content/plugins/`
-4. Attiva il plugin dal pannello di amministrazione di WordPress.
-NOTA: l'attivazione richiede diversi minuti, perché vengono scaricate le tabelle di dati aggiornati dai siti ufficiali (Istat e Agenzia delle entrate e poi i dati vengono importati nel database)
-
-== Frequently Asked Questions ==
-
-= Come prelevare valori predefiniti dal contesto ? =
-
-Dalla versione 1.2, [comune], [stato] e [cf] supportano il metodo standard di Contact Form 7 per ottenere valori dal contesto.
-Inoltre, tutti supportano valori predefiniti nel tag.
-Cerca qui per maggiori informazioni: https://contactform7.com/getting-default-values-from-the-context/
-[comune] utilizza javascript per essere riempito con il valore predefinito o contestuale.
-
-= Come posso segnalare un bug? =
-Puoi inviare una richiesta nel nostro repository Github:
-[https://github.com/MocioF/campi-moduli-italiani](https://github.com/MocioF/campi-moduli-italiani)
-
-== Screenshots ==
-
-1. Immagine dei form-tag [stato] e [comune] in un form
-2. Immagine del form-tag [cf] in un form
-3. Immagine del blocco "firma digitale" inserito in calce ad una email mediante il form-tag [formsign]
-4. Immagine del meta-box di verifica dei codici hash e firma digitale in Flamingo
-5. Immagine della schermata di admin, da cui è possibile effettuare l'aggiornamento dei dati
-
-== Changelog ==
-= 2.1.0 =
-* Modificato il metodo HTTP da HEAD a GET per ottenere la data di aggiornamento dei file dal sito web dell'ISTAT
-* Corretto il bug in wpforms che consentiva l'invio del modulo senza che il comune (indicato come richiesto) venisse selezionato
-* Aggiunto controllo sicurezza tramite un nonce nel codice AJAX di comune
-* Aggiunto l'utilizzo della cache degli oggetti di WordPress alle query sul db
-* Corretto il cambio di markup nei controlli del modulo per CF7 v.5.6
-* Aggiunta possibilità di inserire un valore predefinito per "stato" in wpforms; modificato l'ordinamento delle scelte (ora alfabetico)
-* Aggiunta possibilità di attivazione multisito
-* Utilizzate versioni minificate di script e stili
-* Il valore preimpostato del comune del form-tag per CF7 può ora essere impostato indicando anche il nome del Comune
-* Aggiunta possibilità di inserire un valore di default per "comune" in wpforms
-
-= 2.0.8 =
-* Corretto bug nel campo CF
-
-= 2.0.7 =
-* Aggiornato per funzionare con Contact Form 7 > 5.5
-* Corretti bug minori
-
-= 2.0.6 =
-* Corretto errore nel controllo dell'ultima data di aggiornamento dei file sul sito ISTAT
-
-= 2.0.5 =
-* Aggiunto il certificato della nuoca CA di istat.it per cUrl. Corregge: https://wordpress.org/support/topic/attivazione-vietata-forbidden/
-
-= 2.0.3 =
-* Correzioni di bug minori [#1](https://github.com/MocioF/campi-moduli-italiani/issues/1).
-
-= 2.0.2 =
-* Utilizza la data di aggiornamento del file remoto di comuni_attuali per codici_catastali
-
-= 2.0.1 =
-* Correzioni di bug minori
-
-= 2.0.0 =
-* aggiunto un campo per selezionare un Comune a WPForms
-* rimossa la definizione di una variabile in global scope
-* aggiunto l'uso di gruppi di opzioni nella selezione del paese
-
-= 1.3.0 =
-* prima integrazione con WPForms
-
-= 1.2.2 =
-* modificata tabella _comuni_variazioni (l'ISTAT ha cambiato il formato del file)
-* modificata tabella _comuni_soppressi (l'ISTAT ha cambiato il formato del file)
-* aggiornato jquery-ui-dialog.css alla versione utilizzata in WP 5.6
-* aggiunte classi standard wpcf7 a [comune] (wpcf7-select), [stato] (wpcf7-select) e [cf] (wpcf7-text)
-* modificato il comportamento dell'opzione "use_label_element" in [comune]: se non è settata, non verrà visualizzata alcuna stringa prima delle select
-* modificati i precedenti valori dei primi elementi utilizzati come label nelle selezioni di [comune]
-* aggiunta l'opzione per utilizzare un primo valore come etichetta nella select di [stato] (Seleziona un paese)
-* modificato il nome della classe "gcmi_wrap" in "gcmi-wrap"
-* per [comune] è ora possibile impostare classi personalizzate sia per il tag span contenitore, sia per le select
-*
-* [comune] shortcode (non per CF7):
-* modificato il nome della classe "gcmi_comune" in "gcmi-comune"
-* aggiunta l'opzione "use_label_element"; predefinito a true
-* rimossi gli elementi
dal codice html generato
-
-= 1.2.1 =
-* Bug fix: corretto [stato] che non sostitutiva il mail-tag con il nome paese
-
-= 1.2.0 =
-* Aggiunto supporto per i valori di default dal contesto in [comune], [cf] e [stato]. Utilizzata la sintassi standard di Contact Form 7. Leggi: https://contactform7.com/getting-default-values-from-the-context/
-* Correzioni di bug minori
-
-= 1.1.3 =
-* Correzioni di bug minori
-
-= 1.1.2 =
-* Sistemato il charset per https://www.istat.it/storage/codici-unita-amministrative/Elenco-comuni-italiani.csv (set di dati "current_communes", tabella _gcmi_comuni_attuali). Aggiorna la tabella dalla console di amministrazione se alcuni nomi hanno caratteri non corrispondenti
-* Corretti errori minori in class-gcmi-comune.php
-
-= 1.1.1 =
-* Aggiunti dei campi hidden che contengono la denominazione di comune, provincia e regione selezionati per poter essere utilizzati all'interno di plugin che creano dei PDF
-* Impostati set_time_limit(360) nella routine di attivazione
-* Aggiunto readme.txt in inglese
-
-= 1.1.0 =
-* Modificato controllo firma mail: l'ID del form viene determinato direttamente dai dati di Flamingo e non è più inserito nel corpo della mail
-* Inseriti link alle review e alla pagina di supporto nella pagina dei plugins
-* Modificate routine di importazione database "comuni attuali", a seguito di modifica nei file ISTAT da giugno 2020
-* Modificato sistema di rilevazione aggiornamento file remoti
-
-= 1.0.3 =
-* Bug fix: errore nel calcolo dell'hash in modules/formsign/wpcf7-formsign-formtag.php
-
-= 1.0.2 =
-* Aggiornamenti di alcune stringhe della traduzione.
-* Bug fix (addslashes prima di calcolare hash di verifica)
-
-= 1.0.1 =
-* Aggiornato il text domain allo slug assegnato da wordpress.
-
-= 1.0.0 =
-* Prima versione del plugin.
-
-== Upgrade Notice ==
-= 2.0.0 =
-Integrato anche con WPForms
-
-= 1.1.0 =
-L'ISTAT ha modificato il formato del suo database.
-Dopo questo aggiornamento è necessario aggiornare la tabella relativa ai comuni attuali [comuni_attuali].
-È consigliato anche aggiornare le tabelle relativa ai comuni soppressi [comuni_soppressi] e alle variazioni [comuni_variazioni]
-
-= 1.0.0 =
-Prima installazione
-
-== Upgrade Notice ==
-
-= 2.1.0 =
-Corretti problemi di sicurezza e implementata la cache per le query
-
+=== Campi Moduli Italiani ===
+Contributors: mociofiletto
+Donate link: https://paypal.me/GiuseppeF77
+Tags: Contact Form 7, WPForms, comuni italiani, codice fiscale, firma digitale, multisite
+Requires at least: 5.9
+Tested up to: 6.2
+Requires PHP: 7.2
+Stable tag: 2.1.1
+License: GPLv2 or later
+License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
+
+Plugin per creare campi utili per siti italiani, da utilizzare nei moduli prodotti con Contact Form 7 e WPForms.
+
+== Description ==
+Questo plugin crea dei form-tag per Contact Form 7 e dei campi per WPForms.
+
+= Contact Form 7 =
+In questa versione sono disponibili 4 form-tag (e corrispondenti mail-tag):
+* [comune]: crea una serie di select per la selezione di un comune italiano
+* [cf]: crea un campo per l'inserimento del codice fiscale italiano di una persona fisica
+* [stato]: crea la possibilità di selezionare uno stato
+* [formsign]: crea la possibilità di firmare digitalmente le mail inviate con una chiave privata attribuita ad ogni singolo form
+
+= WPForms =
+Sono disponibili 2 tipi di campi
+* Selezione a cascata di un comune italiano (restituisce il codice comune ISTAT come valore)
+* Un campo per selezionare uno stato (restituisce il codice paese ISTAT come valore)
+
+== Dati utilizzati ==
+Il plugin al momento dell'attivazione scarica i dati che utilizza dal sito web dell'Istat e da quello dell'Agenzia delle entrate. Questi dati sono aggiornabili dalla console di amministrazione.
+Il download dei dati e l'inserimento degli stessi nel database richiede diversi minuti: pazientate durante la fase di attivazione.
+La selezione dei comuni è stata creata partendo dal codice di https://wordpress.org/plugins/regione-provincia-comune/
+
+Questo plugin utilizza dati resi disponibili dall'ISTAT e dall'Agenzia delle entrate.
+In particolare, vengono acquisiti e memorizzati dati messi a disposizione a queste URL:
+
+* https://www.istat.it/it/archivio/6789
+* https://www.istat.it/it/archivio/6747
+* https://www1.agenziaentrate.gov.it/documentazione/versamenti/codici/ricerca/VisualizzaTabella.php?ArcName=COM-ICI
+
+I dati pubblicati sul sito dell'ISTAT sono coperti da licenza Creative Commons - Attribuzione (CC-by) (https://creativecommons.org/licenses/by/3.0/it/), come indicato qui: https://www.istat.it/it/note-legali
+I dati prelevati dal sito web dell'Agenzia delle entrate sono di pubblico dominio e costituiscono una banca dati pubblica resa disponibile per consentire gli adempimenti tributari e, più in generale, per consentire l'identificazione delle persone fisiche presso le pubbliche amministrazioni italiane, tramite il codice fiscale.
+I dati presenti sul sito dell'Agenzia delle entrate possono essere liberamente immagazzinati nel proprio computer o stampati (https://www.agenziaentrate.gov.it/portale/web/guest/privacy). I dati sono gestiti dall'Ufficio Archivio anagrafico dell'Agenzia delle entrate.
+Questo plugin utilizza i dati prelevati dal sito internet dell'Agenzia delle entrate esclusivamente al fine di effettuare un controllo di regolarità formale del codice fiscale.
+Questo plugin non riporta nelle pagine esterne del sito internet su cui è utilizzato, nessun collegamento né al sito dell'Agenzia delle entrate, né al sito dell'ISTAT; in particolare non viene effettuata alcuna forma di link diretto, né di deep linking.
+
+== Come utilizzare i form-tag in Contact Form 7 ==
+[comune]
+`[comune]` dispone di un gestore nell'area di creazione dei form CF7 che consente di impostare le varie opzioni.
+In particolare è possibile impostare l'attributo "kind" a "tutti"; "attuali","evidenza_cessati". Nel primo e nel terzo caso, con modalità differenti, vengono proposti sia i comuni attualmente esistenti, sia quelli cessati in precedenza (utile, ad esempio, per consentire la selezione del Comune di nascita). Nella modalità "attuali", è invece consentita solo la selezione dei comuni attualmente esistenti (utile per consentire la selezione del Comune di residenza / domicilio).
+Inoltre è possibile settare l'opzione "comu_details", per mostrare dopo la cascata di select un'icona che consente la visualizzazione di una tabella modale con i dettagli statistici dell'unità territoriale.
+Il valore restituito dal gruppo è sempre il codice ISTAT del comune selezionato. Il corrispondente mail-tag, converte tale valore nella denominazione del comune seguita dall'indicazione della targa automobilistica della provincia.
+Dalla versione 1.1.1 vengono creati anche dei campi hidden popolati con le stringhe corrispondenti alla denominazione di regione, provincia e comune selezionati, utili per essere utilizzanti in plugin che catturano direttamente i dati trasmessi dal form (come "Send PDF for Contact Form 7")
+La cascata di select, può essere utilizzata anche all'esterno di CF7, mediante lo shortcode [comune] (opzioni analoge a quelle del form-tag per Contact Form 7).
+
+[cf]
+`[cf]` dispone di un gestore nell'area di creazione dei form CF7 che consente di impostare le varie opzioni.
+In particolare è possibile impostare varie opzioni di validazione consentendo di riscontrare la corrispondenza del codice fiscale con altri campi del modulo.
+Nello specifico è possibile verificare che il codice fiscale corrisponda con lo stato estero di nascita (selezionato mediante una select [stato]), il comune italiano di nascita (selezionato mediante una cascata di select [comune]), il sesso (indicando il nome di un campo form che restituisca "M" o "F"), la data di nascita. Nel caso in cui per selezionare la data di nascita si utilizzino più campi, uno per il giorno, uno per il mese e uno per l'anno, è possibile riscontrare la corrispondenza del codice fiscale con questi valori.
+
+[stato]
+`[stato]` dispone di un gestore nell'area di creazione dei form CF7 che consente di impostare le varie opzioni.
+In particolare, è possibile impostare la selezione dei soli stati attualmente esistenti (opzione "only_current") ed è possibile impostare l'opzione "use_continent" per avere i valori della select suddivisi per continente. Il campo restituisce sempre il codice ISTAT dello Stato estero (codice 100 per l'Italia). Il codice ISTAT è il tipo di dato atteso da [cf], per il riscontro del codice fiscale.
+
+[formsign]
+`[formsign]` _NON_ dispone di un gestore nell'area di creazione dei form CF7.
+Per utilizzarlo è sufficiente inserire nel proprio modulo il tag seguito dal nome del campo: ad esempio [formsign firmadigitale]. Questo tag, creerà nel modulo un campo hidden con attributo name="firmadigitale" e nessun valore.
+Per utilizzare il codice è anche necessario inserire nella mail o nelle mail che il form invia il campo [firmadigitale] (si consiglia al termine della mail).
+In questo modo in coda alla mail verrà inserita una sequenza di due righe contenenti:
+un hash md5 dei dati trasmessi con il modulo (non del contenuto dei files eventualmente allegati)
+una firma digitale dell'hash.
+La firma viene apposta mediante la generazione di una coppia di chiavi RSA, attribuita a ciascun form.
+Mediante il riscontro dell'hash e della firma, sarà possibile verificare che le mail siano state effettivamente spedite dal form e che i dati trasmessi dall'utente corrispondano a quanto registato.
+Per agevolare il riscontro dei dati, è preferibile utilizzare "Flamingo" per l'archiviazione dei messaggi inviati. Infatti, nella schermata di admin di Flamingo viene creato uno specifico box che consente il riscontro dell'hash e della firma digitale inseriti nella mail.
+Il sistema è utile nel caso in cui mediante il form si preveda di ricevere domande di iscrizione o candidature etc.. ed evita contestazioni in merito ai dati che i candidati pretendono di aver inviato e quanto registrato dal sistema in Flamingo.
+
+## Code
+Vuoi controllare il codice? [https://github.com/MocioF/campi-moduli-italiani](https://github.com/MocioF/campi-moduli-italiani)
+
+== Installazione ==
+
+= Installazione automatica =
+
+1. Pannello di amministrazione plugin e opzione `aggiungi nuovo`.
+2. Ricerca nella casella di testo `campi moduli italiani`.
+3. Posizionati sulla descrizione di questo plugin e seleziona installa.
+4. Attiva il plugin dal pannello di amministrazione di WordPress.
+NOTA: l'attivazione richiede diversi minuti, perché vengono scaricate le tabelle di dati aggiornati dai siti ufficiali (Istat e Agenzia delle entrate e poi i dati vengono importati nel database)
+
+= Installazione manuale file ZIP =
+
+1. Scarica il file .ZIP da questa schermata.
+2. Seleziona opzione aggiungi plugin dal pannello di amministrazione.
+3. Seleziona opzione in alto `upload` e seleziona il file che hai scaricato.
+4. Conferma installazione e attivazione plugin dal pannello di amministrazione.
+NOTA: l'attivazione richiede diversi minuti, perché vengono scaricate le tabelle di dati aggiornati dai siti ufficiali (Istat e Agenzia delle entrate e poi i dati vengono importati nel database)
+
+= Installazione manuale FTP =
+
+1. Scarica il file .ZIP da questa schermata e decomprimi.
+2. Accedi in FTP alla tua cartella presente sul server web.
+3. Copia tutta la cartella `campi-moduli-italiani` nella directory `/wp-content/plugins/`
+4. Attiva il plugin dal pannello di amministrazione di WordPress.
+NOTA: l'attivazione richiede diversi minuti, perché vengono scaricate le tabelle di dati aggiornati dai siti ufficiali (Istat e Agenzia delle entrate e poi i dati vengono importati nel database)
+
+== Frequently Asked Questions ==
+
+= Come prelevare valori predefiniti dal contesto ? =
+
+Dalla versione 1.2, [comune], [stato] e [cf] supportano il metodo standard di Contact Form 7 per ottenere valori dal contesto.
+Inoltre, tutti supportano valori predefiniti nel tag.
+Cerca qui per maggiori informazioni: https://contactform7.com/getting-default-values-from-the-context/
+[comune] utilizza javascript per essere riempito con il valore predefinito o contestuale.
+
+= Come posso segnalare un bug? =
+Puoi inviare una richiesta nel nostro repository Github:
+[https://github.com/MocioF/campi-moduli-italiani](https://github.com/MocioF/campi-moduli-italiani)
+
+== Screenshots ==
+
+1. Immagine dei form-tag [stato] e [comune] in un form
+2. Immagine del form-tag [cf] in un form
+3. Immagine del blocco "firma digitale" inserito in calce ad una email mediante il form-tag [formsign]
+4. Immagine del meta-box di verifica dei codici hash e firma digitale in Flamingo
+5. Immagine della schermata di admin, da cui è possibile effettuare l'aggiornamento dei dati
+
+== Changelog ==
+= 2.1.1 =
+* Aggiornati i certificati PEM
+* Aggiunto un sistema di emergenza con wget per scaricare i dati dal sito dell'Istat
+
+= 2.1.0 =
+* Modificato il metodo HTTP da HEAD a GET per ottenere la data di aggiornamento dei file dal sito web dell'ISTAT
+* Corretto il bug in wpforms che consentiva l'invio del modulo senza che il comune (indicato come richiesto) venisse selezionato
+* Aggiunto controllo sicurezza tramite un nonce nel codice AJAX di comune
+* Aggiunto l'utilizzo della cache degli oggetti di WordPress alle query sul db
+* Corretto il cambio di markup nei controlli del modulo per CF7 v.5.6
+* Aggiunta possibilità di inserire un valore predefinito per "stato" in wpforms; modificato l'ordinamento delle scelte (ora alfabetico)
+* Aggiunta possibilità di attivazione multisito
+* Utilizzate versioni minificate di script e stili
+* Il valore preimpostato del comune del form-tag per CF7 può ora essere impostato indicando anche il nome del Comune
+* Aggiunta possibilità di inserire un valore di default per "comune" in wpforms
+
+= 2.0.8 =
+* Corretto bug nel campo CF
+
+= 2.0.7 =
+* Aggiornato per funzionare con Contact Form 7 > 5.5
+* Corretti bug minori
+
+= 2.0.6 =
+* Corretto errore nel controllo dell'ultima data di aggiornamento dei file sul sito ISTAT
+
+= 2.0.5 =
+* Aggiunto il certificato della nuoca CA di istat.it per cUrl. Corregge: https://wordpress.org/support/topic/attivazione-vietata-forbidden/
+
+= 2.0.3 =
+* Correzioni di bug minori [#1](https://github.com/MocioF/campi-moduli-italiani/issues/1).
+
+= 2.0.2 =
+* Utilizza la data di aggiornamento del file remoto di comuni_attuali per codici_catastali
+
+= 2.0.1 =
+* Correzioni di bug minori
+
+= 2.0.0 =
+* aggiunto un campo per selezionare un Comune a WPForms
+* rimossa la definizione di una variabile in global scope
+* aggiunto l'uso di gruppi di opzioni nella selezione del paese
+
+= 1.3.0 =
+* prima integrazione con WPForms
+
+= 1.2.2 =
+* modificata tabella _comuni_variazioni (l'ISTAT ha cambiato il formato del file)
+* modificata tabella _comuni_soppressi (l'ISTAT ha cambiato il formato del file)
+* aggiornato jquery-ui-dialog.css alla versione utilizzata in WP 5.6
+* aggiunte classi standard wpcf7 a [comune] (wpcf7-select), [stato] (wpcf7-select) e [cf] (wpcf7-text)
+* modificato il comportamento dell'opzione "use_label_element" in [comune]: se non è settata, non verrà visualizzata alcuna stringa prima delle select
+* modificati i precedenti valori dei primi elementi utilizzati come label nelle selezioni di [comune]
+* aggiunta l'opzione per utilizzare un primo valore come etichetta nella select di [stato] (Seleziona un paese)
+* modificato il nome della classe "gcmi_wrap" in "gcmi-wrap"
+* per [comune] è ora possibile impostare classi personalizzate sia per il tag span contenitore, sia per le select
+*
+* [comune] shortcode (non per CF7):
+* modificato il nome della classe "gcmi_comune" in "gcmi-comune"
+* aggiunta l'opzione "use_label_element"; predefinito a true
+* rimossi gli elementi
e
dal codice html generato
+
+= 1.2.1 =
+* Bug fix: corretto [stato] che non sostitutiva il mail-tag con il nome paese
+
+= 1.2.0 =
+* Aggiunto supporto per i valori di default dal contesto in [comune], [cf] e [stato]. Utilizzata la sintassi standard di Contact Form 7. Leggi: https://contactform7.com/getting-default-values-from-the-context/
+* Correzioni di bug minori
+
+= 1.1.3 =
+* Correzioni di bug minori
+
+= 1.1.2 =
+* Sistemato il charset per https://www.istat.it/storage/codici-unita-amministrative/Elenco-comuni-italiani.csv (set di dati "current_communes", tabella _gcmi_comuni_attuali). Aggiorna la tabella dalla console di amministrazione se alcuni nomi hanno caratteri non corrispondenti
+* Corretti errori minori in class-gcmi-comune.php
+
+= 1.1.1 =
+* Aggiunti dei campi hidden che contengono la denominazione di comune, provincia e regione selezionati per poter essere utilizzati all'interno di plugin che creano dei PDF
+* Impostati set_time_limit(360) nella routine di attivazione
+* Aggiunto readme.txt in inglese
+
+= 1.1.0 =
+* Modificato controllo firma mail: l'ID del form viene determinato direttamente dai dati di Flamingo e non è più inserito nel corpo della mail
+* Inseriti link alle review e alla pagina di supporto nella pagina dei plugins
+* Modificate routine di importazione database "comuni attuali", a seguito di modifica nei file ISTAT da giugno 2020
+* Modificato sistema di rilevazione aggiornamento file remoti
+
+= 1.0.3 =
+* Bug fix: errore nel calcolo dell'hash in modules/formsign/wpcf7-formsign-formtag.php
+
+= 1.0.2 =
+* Aggiornamenti di alcune stringhe della traduzione.
+* Bug fix (addslashes prima di calcolare hash di verifica)
+
+= 1.0.1 =
+* Aggiornato il text domain allo slug assegnato da wordpress.
+
+= 1.0.0 =
+* Prima versione del plugin.
+
+== Upgrade Notice ==
+= 2.0.0 =
+Integrato anche con WPForms
+
+= 1.1.0 =
+L'ISTAT ha modificato il formato del suo database.
+Dopo questo aggiornamento è necessario aggiornare la tabella relativa ai comuni attuali [comuni_attuali].
+È consigliato anche aggiornare le tabelle relativa ai comuni soppressi [comuni_soppressi] e alle variazioni [comuni_variazioni]
+
+= 1.0.0 =
+Prima installazione
+
+== Upgrade Notice ==
+
+= 2.1.0 =
+Corretti problemi di sicurezza e implementata la cache per le query
+
diff --git a/readme.txt b/readme.txt
index b896ebe..ec66d9c 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,241 +1,245 @@
-=== Campi Moduli Italiani ===
-Contributors: mociofiletto
-Donate link: https://paypal.me/GiuseppeF77
-Tags: Contact Form 7, WPForms, comuni italiani, codice fiscale, firma digitale, multisite
-Requires at least: 5.9
-Tested up to: 6.0
-Requires PHP: 7.2
-Stable tag: 2.1.0
-License: GPLv2 or later
-License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
-
-Plugin to create useful fields for Italian sites, to be used in the forms produced with Contact Form 7 and WPForms.
-
-== Description ==
-This plugin creates form tags for Contact Form 7 and form fields for WPForms.
-
-= Contact Form 7 =
-4 form-tags (and corresponding mail-tags) are available in this version:
-* [comune]: creates a series of select for the selection of an Italian municipality
-* [cf]: creates a field for entering the Italian tax code of a natural person
-* [stato]: creates the ability to select a country
-* [formsign]: creates the possibility to digitally sign the e-mails sent with a private key attributed to each individual form
-
-= WPForms =
-2 fields types are available:
-* Cascade selection of an Italian municipality (returning Istat's municipality code as value)
-* A field to select a state (returning Istat's country code as value)
-
-== Data used ==
-At the time of activation, the plugin downloads the data it uses from the Istat and from the Italian Revenue Agency websites. This data can be updated from the administration console.
-Downloading and entering data into the database takes several minutes: be patient during the activation phase.
-The selection of the municipalities was created starting from the code of https://wordpress.org/plugins/regione-provincia-comune/
-
-This plugin uses data made available by ISTAT and the Agenzia delle entrate (Italian revenue agency).
-In particular, data made available at these URLs are acquired and stored:
-
-* https://www.istat.it/it/archivio/6789
-* https://www.istat.it/it/archivio/6747
-* https://www1.agenziaentrate.gov.it/documentazione/versamenti/codici/ricerca/VisualizzaTabella.php?ArcName=COM-ICI
-
-The data published on the ISTAT website are covered by a Creative Commons license - Attribution (CC-by) (https://creativecommons.org/licenses/by/3.0/it/), as indicated here: https://www.istat.it/it/note-legali
-The data taken from the website of the Agenzia delle entrate are in the public domain and constitute a public database made available to allow tax compliance and, more generally, to allow the identification of physical persons with the Italian public administrations, through the personal fiscal code.
-The data on the Agenzia delle entrate website can be freely stored on your computer or printed (https://www.agenziaentrate.gov.it/portale/web/guest/privacy). The data are managed by the Ufficio Archivio of the Agenzia delle entrate.
-This plugin uses the data taken from the website of the Agenzia delle entrate exclusively for the purpose of carrying out a formal regularity check of the pesonal tax code.
-This plugin does not include any links on the external pages of the website on which it is used, neither to the Agenzia delle entrate's site nor to the ISTAT's website; in particular, no kind of direct link is made, nor of deep linking.
-
-== How to use form tags in Contact Form 7 ==
-
-[comune]
-`[comune]` has a manager in the CF7 form creation area that allows you to set various options.
-In particular, it is possible to set the "kind" attribute to "tutti" (all); "attuali" (current), "evidenza_cessati" (evidence ceased). In the first and third cases, in different ways, both the currently existing municipalities and those previously closed are proposed (useful, for example, to allow the selection of the municipality of birth). In the "attuali" mode, however, only the selection of the currently existing municipalities is allowed (useful to allow the selection of the Municipality of residence / domicile).
-It is also possible to set the "comu_details" option, to show an icon after the select cascade that allows the display of a modal table with the statistical details of the territorial unit.
-The value returned by the group is always the ISTAT code of the selected municipality. The corresponding mail-tag converts this value into the name of the municipality followed by the indication of the automotive code of the province.
-From version 1.1.1 hidden fields are also populated with the strings corresponding to the denomination of the region, province and municipality selected, useful for being used in plugins that directly capture the data transmitted by the form (such as "Send PDF for Contact Form 7" )
-The cascade of select can also be used outside of CF7, using the [comune] shortcode (options similar to those of the form tag for Contact Form 7).
-
-[cf]
-`[cf]` has a manager in the CF7 form creation area that allows you to set the various options.
-In particular, it is possible to set various validation options allowing you to find the correspondence of the tax code with other fields of the form.
-Specifically, it is possible to verify that the tax code corresponds with the foreign state of birth (selected by means of a select [stato]), the Italian municipality of birth (selected by means of a cascade of select [comune]), gender (indicating the name of a form field that returns "M" or "F"), the date of birth. If multiple fields are used to select the date of birth, one for the day, one for the month and one for the year, it is possible to find the correspondence of the tax code with these values.
-
-[stato]
-`[stato]` has a manager in the CF7 form creation area that allows you to set various options.
-In particular, it is possible to set the selection of only the currently existing states ("only_current" option) and it is possible to set the "use_continent" option to have the select values divided by continent. The field always returns the ISTAT code of the foreign state (code 100 for Italy). The ISTAT code is the type of data expected by [cf], for the verification of the tax code.
-
-[formsign]
-`[formsign]` DOES NOT have a manager in the CF7 form creation area.
-To use it, simply insert the tag followed by the field name in your own form: for example [formsign firmadigitale]. This tag will create a hidden field in the form with attribute name = "firmadigitale" and no value.
-To use the code, it is also necessary to insert the [firmadigitale] field in the email or email that the form sends (it is recommended at the end of the email).
-In this way, at the end of the email will be written a two-line sequence containing:
-an md5 hash of the data transmitted with the module (not of the content of any attached files)
-a digital signature of the hash.
-The signature is affixed by generating a pair of RSA keys, attributed to each form.
-By checking the hash and the signature, it will be possible to verify that the emails have actually been sent by the form and that the data transmitted by the user correspond to what has been registered.
-To facilitate data feedback, it is preferable to use "Flamingo" for archiving sent messages. In fact, in the Flamingo admin screen, a specific box is created that allows feedback of the hash and the digital signature entered in the email.
-The system is useful in the event that through the form it is expected to receive applications for registration or applications etc... and avoids disputes regarding the data that the candidates claim to have sent and what is recorded by the system in Flamingo.
-
-## Code
-
-Want to check the code? [https://github.com/MocioF/campi-moduli-italiani](https://github.com/MocioF/campi-moduli-italiani)
-
-== Installation ==
-
-= Automatic installation =
-
-1. Plugin admin panel and `add new` option.
-2. Search in the text box `campi-moduli-italiani`.
-3. Position yourself on the description of this plugin and select install.
-4. Activate the plugin from the WordPress admin panel.
-NOTE: activation takes several minutes, because the updated data tables are downloaded from the official sites (Istat and Agenzia delle entrate and then the data is imported into the database)
-
-= Manual installation of ZIP files =
-
-1. Download the .ZIP file from this screen.
-2. Select add plugin option from the admin panel.
-3. Select `upload` option at the top and select the file you downloaded.
-4. Confirm installation and activation of plugins from the administration panel.
-NOTE: activation takes several minutes, because the updated data tables are downloaded from the official sites (Istat and Agenzia delle entrate and then the data is imported into the database)
-
-= Manual FTP installation =
-
-1. Download the .ZIP file from this screen and unzip it.
-2. FTP access to your folder on the web server.
-3. Copy the whole `campi-moduli-italiani` folder to the `/wp-content/plugins/` directory
-4. Activate the plugin from the WordPress admin panel.
-NOTE: activation takes several minutes, because the updated data tables are downloaded from the official sites (Istat and Agenzia delle entrate and then the data is imported into the database)
-
-== Frequently Asked Questions ==
-
-= How to get default values from the context ? =
-Since version 1.2, [comune], [stato] and [cf] support standard Contact Form 7 method to get values from the context.
-More, all of them support predefined values in tag.
-Look here for more informations: https://contactform7.com/getting-default-values-from-the-context/
-[comune] uses javascript to be filled with default or context value.
-
-
-= How do I report a bug? =
-You can create an issue in our Github repo:
-[https://github.com/MocioF/campi-moduli-italiani](https://github.com/MocioF/campi-moduli-italiani)
-
-== Screenshots ==
-
-1. Image of the [stato] and [comune] form tags in a form
-2. Image of the form-tag [cf] in a form
-3. Image of the "digital signature" block inserted at the bottom of an email using the form-tag [formsign]
-4. Image of the hash code verification meta-box and digital signature in Flamingo
-5. Image of the admin screen, from which it is possible to update the data
-
-== Changelog ==
-= 2.1.0 =
-* Changed method to get remote file update time on ISTAT website from HEAD to GET
-* Fixed bug in wpforms allowing form submission without a full selection of a municipality (marked as compulsory)
-* Secured comune's ajax with nonce
-* Added use of WordPress Object Cache to db queries
-* Fixed markup changes in form control for CF7 v.5.6
-* Added default value in wpforms for "stato"; changed order of choices (now using denominations)
-* Added multisite activation feature
-* Switch to minified scripts and styles
-* Default value in CF7 comune form-tag can be set by municipality's name
-* Added default value in wpforms for "comune"
-
-= 2.0.8 =
-* Fixed bug in cf atts
-
-= 2.0.7 =
-* Updated to work in Contact Form 7 > 5.5
-* Minor bugs fixed
-
-= 2.0.6 =
-* Fixed ssl issue in checking last update date of remote files on ISTAT website
-
-= 2.0.5 =
-* Added new istat.it ca cert for cUrl. Fixes: https://wordpress.org/support/topic/attivazione-vietata-forbidden/
-
-= 2.0.3 =
-* Minor bug fixes Fixes [#1](https://github.com/MocioF/campi-moduli-italiani/issues/1).
-
-= 2.0.2 =
-* Use the remote update date of comuni_attuali to set the remote update date of codici_catastali
-
-= 2.0.1 =
-* Minor bug fixes
-
-= 2.0.0 =
-* added a field to select a municipality to WPForms
-* removed variable definition from global scope
-* added use of options' groups in country selection
-
-= 1.3.0 =
-* first integration with wpforms
-
-= 1.2.2 =
-* modified table _comuni_variazioni (ISTAT changed the file's format)
-* modified table _comuni_soppressi (ISTAT changed the file's format)
-* updated jquery-ui-dialog.css to version used in WP 5.6
-* added standard wpcf7's classes to [comune] (wpcf7-select), [stato] (wpcf7-select) and [cf] (wpcf7-text)
-* changed behaviour of option "use_label_element" in [comune]: if not set, no strings will be shown before selects
-* changed previous first elements used as labels in selects of [comune]
-* added option to use a label in [stato] (Select a Country)
-* changed class name: gcmi_wrap to gcmi-wrap
-* for [comune] it is now possible to set custom classes both for the span container and for the selects
-*
-* [comune] shortcode (not for CF7):
-* changed class name: gcmi_comune to gcmi-comune
-* added options "use_label_element"; default to true
-* removed p and div tags
-
-= 1.2.1 =
-* Bug fix: fixed [stato] not replacing mail-tag with contry name
-
-= 1.2.0 =
-* Added support for default values from the context in [comune], [cf] and [stato]. Contact Form 7 standard sintax is used. Read: https://contactform7.com/getting-default-values-from-the-context/
-* Minor bug fixes
-
-= 1.1.3 =
-* Minor bug fixes
-
-= 1.1.2 =
-* Fixed charset for https://www.istat.it/storage/codici-unita-amministrative/Elenco-comuni-italiani.csv (data set "comuni_attuali", table _gcmi_comuni_attuali). Please update the table from admin console if some names have characters mismatch
-* Minor bug fix in class-gcmi-comune.php
-
-= 1.1.1 =
-* Added hidden fields that contain the name of the municipality, province and region selected to be used within plugins that create PDFs
-* Set set_time_limit (360) in the activation routine
-* Added readme.txt in English
-
-= 1.1.0 =
-* Modified email signature check: the form ID is determined directly from Flamingo data and is no longer entered in the body of the email
-* Insert links to reviews and support page on the plugin page
-* Modified "comuni attuali" database import routines, following modification in ISTAT files since June 2020
-* Modified remote file update detection system
-
-= 1.0.3 =
-* Bug fix: error in hash calculation on modules/formsign/wpcf7-formsign-formtag.php
-
-= 1.0.2 =
-* Updates of some translation strings.
-* Bug fix (addslashes before calculating verification hash)
-
-= 1.0.1 =
-* Updated the text domain to the slug assigned by wordpress.
-
-= 1.0.0 =
-* First release of the plugin.
-
-== Upgrade Notice ==
-= 2.0.0 =
-Integrated with WPForms
-
-= 1.1.0 =
-ISTAT has changed the format of its database.
-After this update it is necessary to update the table relating to the current municipalities [comuni_attuali].
-It is also recommended to update the tables relating to the municipalities suppressed [comuni_soppressi] and to the variations [comuni_variazioni]
-
-= 1.0.0 =
-First installation
-
-== Upgrade Notice ==
-
-= 2.1.0 =
+=== Campi Moduli Italiani ===
+Contributors: mociofiletto
+Donate link: https://paypal.me/GiuseppeF77
+Tags: Contact Form 7, WPForms, comuni italiani, codice fiscale, firma digitale, multisite
+Requires at least: 5.9
+Tested up to: 6.2
+Requires PHP: 7.2
+Stable tag: 2.1.1
+License: GPLv2 or later
+License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
+
+Plugin to create useful fields for Italian sites, to be used in the forms produced with Contact Form 7 and WPForms.
+
+== Description ==
+This plugin creates form tags for Contact Form 7 and form fields for WPForms.
+
+= Contact Form 7 =
+4 form-tags (and corresponding mail-tags) are available in this version:
+* [comune]: creates a series of select for the selection of an Italian municipality
+* [cf]: creates a field for entering the Italian tax code of a natural person
+* [stato]: creates the ability to select a country
+* [formsign]: creates the possibility to digitally sign the e-mails sent with a private key attributed to each individual form
+
+= WPForms =
+2 fields types are available:
+* Cascade selection of an Italian municipality (returning Istat's municipality code as value)
+* A field to select a state (returning Istat's country code as value)
+
+== Data used ==
+At the time of activation, the plugin downloads the data it uses from the Istat and from the Italian Revenue Agency websites. This data can be updated from the administration console.
+Downloading and entering data into the database takes several minutes: be patient during the activation phase.
+The selection of the municipalities was created starting from the code of https://wordpress.org/plugins/regione-provincia-comune/
+
+This plugin uses data made available by ISTAT and the Agenzia delle entrate (Italian revenue agency).
+In particular, data made available at these URLs are acquired and stored:
+
+* https://www.istat.it/it/archivio/6789
+* https://www.istat.it/it/archivio/6747
+* https://www1.agenziaentrate.gov.it/documentazione/versamenti/codici/ricerca/VisualizzaTabella.php?ArcName=COM-ICI
+
+The data published on the ISTAT website are covered by a Creative Commons license - Attribution (CC-by) (https://creativecommons.org/licenses/by/3.0/it/), as indicated here: https://www.istat.it/it/note-legali
+The data taken from the website of the Agenzia delle entrate are in the public domain and constitute a public database made available to allow tax compliance and, more generally, to allow the identification of physical persons with the Italian public administrations, through the personal fiscal code.
+The data on the Agenzia delle entrate website can be freely stored on your computer or printed (https://www.agenziaentrate.gov.it/portale/web/guest/privacy). The data are managed by the Ufficio Archivio of the Agenzia delle entrate.
+This plugin uses the data taken from the website of the Agenzia delle entrate exclusively for the purpose of carrying out a formal regularity check of the pesonal tax code.
+This plugin does not include any links on the external pages of the website on which it is used, neither to the Agenzia delle entrate's site nor to the ISTAT's website; in particular, no kind of direct link is made, nor of deep linking.
+
+== How to use form tags in Contact Form 7 ==
+
+[comune]
+`[comune]` has a manager in the CF7 form creation area that allows you to set various options.
+In particular, it is possible to set the "kind" attribute to "tutti" (all); "attuali" (current), "evidenza_cessati" (evidence ceased). In the first and third cases, in different ways, both the currently existing municipalities and those previously closed are proposed (useful, for example, to allow the selection of the municipality of birth). In the "attuali" mode, however, only the selection of the currently existing municipalities is allowed (useful to allow the selection of the Municipality of residence / domicile).
+It is also possible to set the "comu_details" option, to show an icon after the select cascade that allows the display of a modal table with the statistical details of the territorial unit.
+The value returned by the group is always the ISTAT code of the selected municipality. The corresponding mail-tag converts this value into the name of the municipality followed by the indication of the automotive code of the province.
+From version 1.1.1 hidden fields are also populated with the strings corresponding to the denomination of the region, province and municipality selected, useful for being used in plugins that directly capture the data transmitted by the form (such as "Send PDF for Contact Form 7" )
+The cascade of select can also be used outside of CF7, using the [comune] shortcode (options similar to those of the form tag for Contact Form 7).
+
+[cf]
+`[cf]` has a manager in the CF7 form creation area that allows you to set the various options.
+In particular, it is possible to set various validation options allowing you to find the correspondence of the tax code with other fields of the form.
+Specifically, it is possible to verify that the tax code corresponds with the foreign state of birth (selected by means of a select [stato]), the Italian municipality of birth (selected by means of a cascade of select [comune]), gender (indicating the name of a form field that returns "M" or "F"), the date of birth. If multiple fields are used to select the date of birth, one for the day, one for the month and one for the year, it is possible to find the correspondence of the tax code with these values.
+
+[stato]
+`[stato]` has a manager in the CF7 form creation area that allows you to set various options.
+In particular, it is possible to set the selection of only the currently existing states ("only_current" option) and it is possible to set the "use_continent" option to have the select values divided by continent. The field always returns the ISTAT code of the foreign state (code 100 for Italy). The ISTAT code is the type of data expected by [cf], for the verification of the tax code.
+
+[formsign]
+`[formsign]` DOES NOT have a manager in the CF7 form creation area.
+To use it, simply insert the tag followed by the field name in your own form: for example [formsign firmadigitale]. This tag will create a hidden field in the form with attribute name = "firmadigitale" and no value.
+To use the code, it is also necessary to insert the [firmadigitale] field in the email or email that the form sends (it is recommended at the end of the email).
+In this way, at the end of the email will be written a two-line sequence containing:
+an md5 hash of the data transmitted with the module (not of the content of any attached files)
+a digital signature of the hash.
+The signature is affixed by generating a pair of RSA keys, attributed to each form.
+By checking the hash and the signature, it will be possible to verify that the emails have actually been sent by the form and that the data transmitted by the user correspond to what has been registered.
+To facilitate data feedback, it is preferable to use "Flamingo" for archiving sent messages. In fact, in the Flamingo admin screen, a specific box is created that allows feedback of the hash and the digital signature entered in the email.
+The system is useful in the event that through the form it is expected to receive applications for registration or applications etc... and avoids disputes regarding the data that the candidates claim to have sent and what is recorded by the system in Flamingo.
+
+## Code
+
+Want to check the code? [https://github.com/MocioF/campi-moduli-italiani](https://github.com/MocioF/campi-moduli-italiani)
+
+== Installation ==
+
+= Automatic installation =
+
+1. Plugin admin panel and `add new` option.
+2. Search in the text box `campi-moduli-italiani`.
+3. Position yourself on the description of this plugin and select install.
+4. Activate the plugin from the WordPress admin panel.
+NOTE: activation takes several minutes, because the updated data tables are downloaded from the official sites (Istat and Agenzia delle entrate and then the data is imported into the database)
+
+= Manual installation of ZIP files =
+
+1. Download the .ZIP file from this screen.
+2. Select add plugin option from the admin panel.
+3. Select `upload` option at the top and select the file you downloaded.
+4. Confirm installation and activation of plugins from the administration panel.
+NOTE: activation takes several minutes, because the updated data tables are downloaded from the official sites (Istat and Agenzia delle entrate and then the data is imported into the database)
+
+= Manual FTP installation =
+
+1. Download the .ZIP file from this screen and unzip it.
+2. FTP access to your folder on the web server.
+3. Copy the whole `campi-moduli-italiani` folder to the `/wp-content/plugins/` directory
+4. Activate the plugin from the WordPress admin panel.
+NOTE: activation takes several minutes, because the updated data tables are downloaded from the official sites (Istat and Agenzia delle entrate and then the data is imported into the database)
+
+== Frequently Asked Questions ==
+
+= How to get default values from the context ? =
+Since version 1.2, [comune], [stato] and [cf] support standard Contact Form 7 method to get values from the context.
+More, all of them support predefined values in tag.
+Look here for more informations: https://contactform7.com/getting-default-values-from-the-context/
+[comune] uses javascript to be filled with default or context value.
+
+
+= How do I report a bug? =
+You can create an issue in our Github repo:
+[https://github.com/MocioF/campi-moduli-italiani](https://github.com/MocioF/campi-moduli-italiani)
+
+== Screenshots ==
+
+1. Image of the [stato] and [comune] form tags in a form
+2. Image of the form-tag [cf] in a form
+3. Image of the "digital signature" block inserted at the bottom of an email using the form-tag [formsign]
+4. Image of the hash code verification meta-box and digital signature in Flamingo
+5. Image of the admin screen, from which it is possible to update the data
+
+== Changelog ==
+= 2.1.1 =
+* Updated PEM chains
+* Added a wget fallback to download from Istat's website
+
+= 2.1.0 =
+* Changed method to get remote file update time on ISTAT website from HEAD to GET
+* Fixed bug in wpforms allowing form submission without a full selection of a municipality (marked as compulsory)
+* Secured comune's ajax with nonce
+* Added use of WordPress Object Cache to db queries
+* Fixed markup changes in form control for CF7 v.5.6
+* Added default value in wpforms for "stato"; changed order of choices (now using denominations)
+* Added multisite activation feature
+* Switch to minified scripts and styles
+* Default value in CF7 comune form-tag can be set by municipality's name
+* Added default value in wpforms for "comune"
+
+= 2.0.8 =
+* Fixed bug in cf atts
+
+= 2.0.7 =
+* Updated to work in Contact Form 7 > 5.5
+* Minor bugs fixed
+
+= 2.0.6 =
+* Fixed ssl issue in checking last update date of remote files on ISTAT website
+
+= 2.0.5 =
+* Added new istat.it ca cert for cUrl. Fixes: https://wordpress.org/support/topic/attivazione-vietata-forbidden/
+
+= 2.0.3 =
+* Minor bug fixes Fixes [#1](https://github.com/MocioF/campi-moduli-italiani/issues/1).
+
+= 2.0.2 =
+* Use the remote update date of comuni_attuali to set the remote update date of codici_catastali
+
+= 2.0.1 =
+* Minor bug fixes
+
+= 2.0.0 =
+* added a field to select a municipality to WPForms
+* removed variable definition from global scope
+* added use of options' groups in country selection
+
+= 1.3.0 =
+* first integration with wpforms
+
+= 1.2.2 =
+* modified table _comuni_variazioni (ISTAT changed the file's format)
+* modified table _comuni_soppressi (ISTAT changed the file's format)
+* updated jquery-ui-dialog.css to version used in WP 5.6
+* added standard wpcf7's classes to [comune] (wpcf7-select), [stato] (wpcf7-select) and [cf] (wpcf7-text)
+* changed behaviour of option "use_label_element" in [comune]: if not set, no strings will be shown before selects
+* changed previous first elements used as labels in selects of [comune]
+* added option to use a label in [stato] (Select a Country)
+* changed class name: gcmi_wrap to gcmi-wrap
+* for [comune] it is now possible to set custom classes both for the span container and for the selects
+*
+* [comune] shortcode (not for CF7):
+* changed class name: gcmi_comune to gcmi-comune
+* added options "use_label_element"; default to true
+* removed p and div tags
+
+= 1.2.1 =
+* Bug fix: fixed [stato] not replacing mail-tag with contry name
+
+= 1.2.0 =
+* Added support for default values from the context in [comune], [cf] and [stato]. Contact Form 7 standard sintax is used. Read: https://contactform7.com/getting-default-values-from-the-context/
+* Minor bug fixes
+
+= 1.1.3 =
+* Minor bug fixes
+
+= 1.1.2 =
+* Fixed charset for https://www.istat.it/storage/codici-unita-amministrative/Elenco-comuni-italiani.csv (data set "comuni_attuali", table _gcmi_comuni_attuali). Please update the table from admin console if some names have characters mismatch
+* Minor bug fix in class-gcmi-comune.php
+
+= 1.1.1 =
+* Added hidden fields that contain the name of the municipality, province and region selected to be used within plugins that create PDFs
+* Set set_time_limit (360) in the activation routine
+* Added readme.txt in English
+
+= 1.1.0 =
+* Modified email signature check: the form ID is determined directly from Flamingo data and is no longer entered in the body of the email
+* Insert links to reviews and support page on the plugin page
+* Modified "comuni attuali" database import routines, following modification in ISTAT files since June 2020
+* Modified remote file update detection system
+
+= 1.0.3 =
+* Bug fix: error in hash calculation on modules/formsign/wpcf7-formsign-formtag.php
+
+= 1.0.2 =
+* Updates of some translation strings.
+* Bug fix (addslashes before calculating verification hash)
+
+= 1.0.1 =
+* Updated the text domain to the slug assigned by wordpress.
+
+= 1.0.0 =
+* First release of the plugin.
+
+== Upgrade Notice ==
+= 2.0.0 =
+Integrated with WPForms
+
+= 1.1.0 =
+ISTAT has changed the format of its database.
+After this update it is necessary to update the table relating to the current municipalities [comuni_attuali].
+It is also recommended to update the tables relating to the municipalities suppressed [comuni_soppressi] and to the variations [comuni_variazioni]
+
+= 1.0.0 =
+First installation
+
+== Upgrade Notice ==
+
+= 2.1.0 =
Security fixes and object cache implementation.
\ No newline at end of file