=== Smart Cookie Kit === Contributors: shark986 Donate link: https://nicolamodugno.it Tags: gdpr, eprivacy, cookie, cookie law, ajax, analytics, ads, adsense, facebook, cache, social, youtube Requires at least: 3.0.1 Tested up to: 4.9.6 Stable tag: trunk License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Accepting the cookies, it releases them asyncronously to: increase server performance, improve user experience, be compatible with cache plugins! == Description == **-- EN --** !!! Version 2 of plugin is GDPR compliant - Cookie name for user preferences is now "CookiePreferences-[wp_install_dir]" !!! Like others plugin, Smart Cookie Kit blocks cookies until the visitor accepts them, but it unlocks them asyncronously (without refreshing the current page): this logic increases server performance, improve user experience, and, more important, makes the plugin compatible with cache plugins!! Thinked for marketing-oriented sites, this plugin blocks standard scripts and conversion/remarketing scripts (including the "noscript" tag too). Why I decided to create this plugin? There are a lot of plugins for cookies management... But: * Many work on the server, modifying some code portions directly in the output: if is there a cache system, it will cache the page in the version for the user that "fired" the cache creation (with modified scripts if the user has not accepted cookies, or with the original scripts if the cookies were accepted), and that version will be served to ALL visitors, regardless of their acceptance. The problem: it is not possible use cache systems. * When user accepts cookies, it is necessary to open another page to have original scripts working. A lot of plugin have done a step forward, making an automatic refresh of the visited page, but web servers have to work again to serve the "correct" page and this may be a serious problem with slow connections (think to mobile devices), heavy pages (without cached pages!!), pages with external resources (Youtube videos, Ads, Social Plugins, ...). Has it ever appened that you start reading some content or jump below to search content of interest and the page scrolls back on the top because of a refresh?! The problem: worst server performance and user experience. * Many lets specify a page that contains cookie policy (to link that in the banner), but often they show the cookie banner in that page too. This is not a big problem, I know, but it is a detail! ;) I searched for a plugins that would not unblock cookies directly in the output from the server, to permit the use of cache systems; more over, I would like "things" faster and smoother without page refreshes and heavy loads. My research had not satisfactory results (for me), so I decided to write my own plugin! The main functionality are the following: * **It recognises and modify automatically** scripts, iframes and images to block them (the block happens directly in the output from the server). * **It permits you to tag code** to block. * It shows the cookie banner only if it is necessary. * It includes in the banner the link to your cookie policy page, and it does not show the banner in that page! * Once the user accepts the policy (or when policy is already accepted), **it unblocks and run scripts via javascript, without a page refresh**. Being via javascript, **the unblock happens even if there are active cache systems**! **-- IT --** !!! La versione 2 del plugin è compatibile con il GDPR - Il nome del cookie per le preferenze utente è "CookiePreferences-[dir_installazione_wp]" !!! Come altri plugin, Smart Cookie Kit blocca preventivamente i cookie finchè il visitatore non li accetta, ma questo sblocco avviene in modo asincrono (senza cioè effettuare il refresh della pagina): questa logica incrementa le performance del serve, migliora l'esperienza dell'utente sul sito, e più importante, rende il plugin compatibile con i plugin che effettuano la cache dei contenuti!! Pensato per i siti con orientamento al marketing, il plugin blocca gli script standard e i tag per le conversioni/remarketing (inclusi i tag "noscript"). Perchè ho deciso di creare questo plugin? Ci sono parecchi plugin che gesticono i cookie... Però: * Lavorano solo ed esclusivamente lato server, modificando alcune porzioni di codice direttamente nell'output: se è attivo un sistema di cache, verrà cachata la versione della pagina adatta al visitatore che ne ha scaturito la creazione (con codice modificato se l'utente non ha prestato il consenso, oppure con codice corretto se invece l'ha prestato), e questa versione sarà servita a tutti quelli che poi visiteranno la pagina, a prescindere dal fatto che abbiano prestato il consenso o no! Problema: non si può avere un plugin per la cache attivo! * Dopo aver acconsentito, bisogna aprire un'altra pagina per vedere il codice nella versione "non alterata" (quindi con tutto funzionante e non bloccato). Molti plugin hanno fatto un passo in avanti, facendo un refresh automatico della pagina visitata, ma i web server devono lavorare 2 volte per servire la pagina "corretta" e questo può essere un serio problema con connessioni lente (penso a dispositivi mobili), pagine un po' pesanti (senza cache!!), pagine con risorse esterne (video di Youtube, pubblicità, plugin sociali, ...). Ti è mai capitato di cominciare a leggere una pagina o scorrere direttamente verso il basso per cercare il contenuto che ti interessa e la pagina ti si ricarica sotto il naso a causa di un refresh?! Problema: scarsa velocità delle pagine ed esperienza utente seriamente peggiorata! * Molti permettono di specificare un url in cui hai pubblicato la cookie policy (per linkarla nel banner), ma spesso mostrano il banner con l'informativa breve anche in quella pagina. Questo non è un grosso problema,lo so, ma è un dettaglio! ;) Ho cercato un plugin che non sbloccasse direttamente i cookie nell'output dal server, per consentire l'uso di un sistema di cache; in più, mi sarebbe piaciuto un sistema veloce e pratico (lato utente) senza ricaricamenti e rallentamenti vari. La ricerca non mi ha dato risultati soddisfacenti, così ho deciso di scrivere un mio plugin! Le principali caratteristiche sono queste: * **Riconosce e modifica in automatico gli script**, i iframe e le immagini da bloccare (il blocco avviene lato server). * **Ti permette di taggare del codice** da bloccare. * Mostra il banner all'utente solo se serve. * Include nel banner il link alla pagina in cui hai pubblicato la cookie policy, e non mostra il banner in quella pagina! * A consenso dato (o ricevuto in precedenza), **sblocca gli script e li esegue tramite javascript, senza ricaricare la pagina**. Essendo tramite javascript, **lo sblocco avverrà anche in caso di pagine cachate**! == Installation == **-- EN --** To install the plugin and get it working.. 1. Decompress the file 'smart_cookie_kit.zip' and upload the dir 'smart_cookie_kit' to the dir 'wp-content/plugins/' of your WordPress site. 2. Activate the plugin through the 'Plugins' menu in WordPress. 3. The plugin is working now with default settings. You can configure it from "Settings" > "Smart Cookie Kit" menù. **-- IT --** Per installare il plugin e renderlo operativo.. 1. Decomprimere il file 'smart_cookie_kit.zip' ed effettuare l'upload la dir 'smart_cookie_kit' nella dir 'wp-content/plugins/' del vostro sito WordPress. 2. Attivare il plugin attraverso il menù 'Plugins' in WordPress. 3. Ora il plugin è in funzione con le impostazioni di default. Puoi configurarlo dal menù "Impostazioni" > "Smart Cookie Kit". == Screenshots == 1. Backend option page / Pagina di configurazione nel backend 2. Banner example, with default settings / Esempio del banner, con le impostazioni di default == Changelog == = 2.0.2 = **-- EN --** * Solved minor bugs. **-- IT --** * Risolti bug minori. = 2.0.1 = **-- EN --** * Solved warning: "The first argument should be either a string or an integer" in plugin_options.php on line 42 * Sometimes Google Tag Manager was not blocked. * Sometimes Google Analytics was blocked even if anonymized. * Solved minor bugs. **-- IT --** * Risolto warning: "The first argument should be either a string or an integer" nel file plugin_options.php alla riga 42 * A volte Google Tag Manager non veniva bloccato. * A volte Google Analytics veniva bloccato anche se anonimizzato. * Risolti bug minori. = 2.0.0 = **-- EN --** * Plugin was modified to be full GDPR compliant! * Cookie name to save user preference is changed in "CookiePreferences-[wp_install_dir]" * Scroll and click consent deprecated. * Added in cookie and in server log informations about first cookie acceptance and following updates. * Is it possible now to handle Google Tag Manager. * Client side code rewrited in pure Javascript: plugin now does NOT require jQuery. * Solved minor bugs. **-- IT --** * Il plugin è stato modificato per rispettare il GDPR! * Il nome del cookie per memorizzare le scelte dell'utente è cambiato in "CookiePreferences-[dir_installazione_wp]" * Consenso su scroll e click in fase di rimozione. * Aggiunti nel cookie e nel log salvato su server informazioni sulla prima accettazione dei cookie e sulle successive modifiche. * Ora è possibile gestire Google Tag Manager. * Il codice client side è stato riscrito in Javascript puro: il plugin ora NON richiede jQuery. * Risolti bug minori. = 1.2.7 = **-- EN --** * Solves an error of the previous update. **-- IT --** * Risolve un errore del precedente aggiornamento. = 1.2.6 = **-- EN --** * Yoast SEO compatibility. Solved a compatibility bug with Yoast on "application/ld+json" scripts. **-- IT --** * Compatibilità con Yoast SEO. Risolta una incompatibilità con il plugin Yoast sugli script "application/ld+json". = 1.2.5 = **-- EN --** * W3 Total Cache compatibility. SCK replaces known js scripts with its empty.js but W3TC minification minifies the empty script removing the reference to the original script, so SCK can't run the original script. Now SCK integrates a filter to exlude it's empty.js from the W3TC minification. **-- IT --** * Compatibilità con W3 Total Cache. SCK sostituisce script conosciuti con il suo empty.js ma la minificazione di W3TC fa sì che si perda il riferimento allo script originale, così SCK non può eseguirlo quando necessario. Ora SCK implementa un filtro per escludere empty.js dalla minificazione di W3TC. = 1.2.4 = * Minor bug fix. / Risoluzione bug minori. = 1.2.3 = * Minor bug fix. / Risoluzione bug minori. * Smart Cookie Kit blocca ora anche gli script del servizio di chat tawk.to. * Aggiunta traduzione Spagnola. = 1.2.2 = **-- EN --** * Smart Cookie Kit blocks now scripts from tawk.to chat system. * Spanish translation added. **-- IT --** * Smart Cookie Kit blocca ora anche gli script del servizio di chat tawk.to. * Aggiunta traduzione Spagnola. = 1.2.1 = **-- EN --** * Smart Cookie Kit blocks now pixels from PixelYourSite plugin too. **-- IT --** * Smart Cookie Kit blocca ora anche i pixel aggiunti dal plugin PixelYourSite. = 1.2.0 = **-- EN --** * Made optional (even if it is active by default) the policy when user scrolls the page (thanks to Angelo for the suggestion). * Added an offset to permit to the user to make a little scroll before trigger the implicit consent (thanks to @diegocanal for the suggestion - https://wordpress.org/support/topic/great-concept-beautifully-implemented). * Added (optionally) option to implicit accept the policy when the user clicks on some elements of the page (it is possible to exclude some). * It is now possible to save on the server (as well as on the user browser) a log of users that accept the policy (included the way of acceptance) - thanks to @woodypad for the suggestion, https://wordpress.org/support/topic/registra-i-consensi-records-consents) * Added a debug mode **-- IT --** * Resa opzionale (anche se attiva per default) l'accettazione della policy quando il visitatore effettua lo scroll della pagina (grazie a Angelo per il suggerimento) * Aggiunto un offset per consentire all'utente un leggero scroll prima che il consenso implicito venga registrato (grazie a @diegocanal per il suggerimento - https://wordpress.org/support/topic/great-concept-beautifully-implemented). * Aggiunta (opzionale) l'accettazione della policy quando il visitatore clicca su elementi nella pagina (con possibilità di escluderne alcuni). * Aggiunta possibilità di salvare sul server (oltre al cookie salvato sul client) il log degli utenti che accettano la policy (compresa modalità di accettazione - grazie a @woodypad per il suggerimento, https://wordpress.org/support/topic/registra-i-consensi-records-consents) * Aggiunta modalità di debug = 1.1.1 = **-- EN --** * Solved a bug: some themes don't print scripts in the footer. Added an option to insert scripts in the header of the page. **-- IT --** * Risolto un bug: alcuni temi non inseriscono gli script nel footer. Aggiunta un'opzione per inserire gli script nell'header della pagina. = 1.1.0 = **-- EN --** The previous version of the plugin was adding a layer to the page content to avoid clicks on any element in the page, so the user had to accept the cookie policy to get the content "available". On this version I made that layer optional and disabled for default, thinking that this is a better choice for the search engine spiders. Also added others options to customize the layout of the banner. **-- IT --** La versione precedente del plugin aggiungeva un livello sovrapposto al contenuto della pagina che impediva all'utente di poter cliccare su qualsiasi elemento nella pagina, così l'utente doveva accettare la cookie policy per avere il contenuto "disponibile". In questa versione ho reso quel livello opzionale e disabilitato per default, pensando che fosse una scelta migliore per gli spider dei motori di ricerca. Aggiunte anche altre opzioni per customizzare la grafica del banner. = 1.0.4 = * Minor bug fix. / Risoluzione bug minori. = 1.0.3 = * Minor bug fix. / Risoluzione bug minori. = 1.0.2 = * IT Cookie law tutorial added. / Aggiunto riferimento teorico per la Cookie law Italiana. * Minor bug fix (translations related). / Risoluzione bug minori (relativi alle traduzioni). * English translation added. / Aggiunta traduzione Inglese. = 1.0.1 = * Minor bug fix. / Risoluzione bug minori. = 1.0.0 = * Added option page. / Aggiunta pagina di configurazione. * Ready for translations. / Predisposto per più lingue. = 0.1.0 = * Test version. / Versione di test. == Support == **-- EN --** A support area will be available as soon as possible. For questions, support or suggestions, write to: info[-at-]nicolamodugno[-.-]it **-- IT --** Presto sarà disponibile un'area di supporto. Per domande, assistenza o suggerimenti, scrivete a: info[-at-]nicolamodugno[-.-]it