Inserire checkbox consenso nei commenti

Inserire checkbox consenso nei commenti WordPress. Ecco come fare.

Inserire checkbox consenso nei commenti WordPress è un altro passaggio fondamentali per rispettare i requisiti del nuovo regolamento della privacy sul GDPR. Se ancora non hai adeguato il tuo sito web, corri a farlo subito è molto importante!

Ti lascio la mia prima guida sche puoi seguire per adeguarti.

GDPR e WordPress: come mettere a norma il tuo sito web.

In questo articolo invece vedremo come essere compliant quando un utente che inserisce un commento sul tuo blog. Il GDPR impone che ogni qualvolta un utente inserisce un commento, quindi inserisce nelle apposite form dati personali debba anche rilasciare il consenso al trattamento degli stessi. Questo può essere fatto tramite un semplice checkbox da spuntare,al fianco di una scritta tipo ad esempio “acconsento al trattamento dei dati per le finalità indicate nella Privacy Policy”. La check va inserita anche sotto i form dei commenti.

Andiamo a vedere come inserire checkbox consenso nei commenti WordPress.

Inserire checkbox consenso nei commenti WordPress

Come ti ho anticipato tempo fa, nell’articolo riguardante l’aggiornamento alla versione 4.9.6 di WordPress questa implementazione viene effettuata automaticamente. Attento però, ci sono casi come il mio in cui nonostante tu abbia eseguito l’aggiornamento di WordPress non si attiva il check-box nei commenti. I motivo principale è causato dalla versione del tuo tema che non supporta l’inserimento di checkbox consenso nei commenti WordPress. Vediamo  come inserire checkbox consenso nei commenti senza plugin ma con un paio di righe di codice.

Aggiornamento GDPR. Ecco il rilascio di WordPress 4.9.6

 

Come inserire checkbox consenso nei commenti WordPress

Con gli ultimi aggiornamenti di WordPress possiamo modificare il codice del nostro tema all’interno del back-end senza accedere in FTP al nostro server e scaricare il file function.php.

Quindi andiamo in Aspetto -> Editor impostiamo come tema principale il nostro tema child (si, la modifica devi farla nel tema child altrimenti al prossimo aggiornamento perdi tutto). Non hai un tema child vedi questo post è semplicissimo crearlo.

Tema Child WordPress perché crearlo?

Ok, selezionato il vostro tema child cliccate sul file functions.php e nel editor aggiungete il codice che vi posto.

 


/**
* aggiungo il checkbox privacy in coda di campi di default del form dei commenti
*/

add_action( 'comment_form_logged_in_after', 'comment_form_additional_fields' );
add_action( 'comment_form_after_fields', 'comment_form_additional_fields' );
function comment_form_additional_fields() {
$commenter = wp_get_current_commenter();
$req = get_option( 'require_name_email' );
$aria_req = ( $req ? " aria-required='true'" : '' );
echo '<p class="privacy-container"><input id="privacy" name="privacy" type="checkbox"' . $aria_req . ' value="si"><small> <a href="inserisci qui il link della privacy">' . __('Ho letto la policy privacy</a> e accetto il trattamento dei miei dati personali') . '</small></p>';
}
//salvo il valore del campo privacy come meta del commento
add_action( 'comment_post', 'save_comment_form_additional_fields' );
function save_comment_form_additional_fields($comment_id) {
if (isset($_POST['privacy']) && $_POST['privacy'] == 'si') {
$privacy = wp_filter_nohtml_kses($_POST['privacy']);
add_comment_meta($comment_id, 'privacy', $privacy);
}
}
//impedisco il salvataggio del commento se non è stato flaggato il checkbox privacy
//questa funzione è un fallback se non è attivo javascript
add_filter( 'preprocess_comment', 'verify_comment_form_data' );
function verify_comment_form_data($commentdata) {
if (!isset($_POST['privacy']) || $_POST['privacy'] != 'si')
wp_die( __( '<strong>Errore</strong>: Per procedere devi accettare la privacy policy. Torna <em>indietro</em> reinvia il tuo commento flaggando la casella di controllo.' ) );
return $commentdata;
}
//impedisco l'invio del form dei commenti se non si flagga la checkbox privacy
add_action('wp_footer','validate_privacy_comment_form_javascript');
function validate_privacy_comment_form_javascript(){
if (is_single() && comments_open()){
?glt;
<script type="text/javascript">
jQuery(document).ready(function($){
$(".comment-form #submit").on('click', function(e){
if (!$('#privacy').is(':checked')){
e.preventDefault();
return false;
}
});
});
</script>
<?php
}
}
//aggiugo un metabox al template dei commenti nel backend
add_action( 'add_meta_boxes_comment', 'extend_comment_add_meta_box' );
function extend_comment_add_meta_box() {
add_meta_box( 'comment_meta_box', __( 'Additional fields' ), 'extend_comment_meta_box', 'comment', 'normal', 'high' );
}
//recupero i dati e li mostro nel metabox
function extend_comment_meta_box($comment) {
$privacy = get_comment_meta( $comment->comment_ID, 'privacy', true );
//aggiungo al metabox un campo nascosto con valore random
wp_nonce_field( 'extend_comment_update', 'extend_comment_update', false );
?>
<p>
<?php _e('Agreed with privacy policy') ?>
<input type="checkbox" id="privacy" name="privacy" <?php if ($privacy && $privacy == 'si') echo "checked=\"checked\" value=\"{$privacy}\"" ?>>
</p>
<?php
}
//salvo i dati aggiuntivi del metabox
add_action( 'edit_comment', 'save_extended_comment_data' );
function save_extended_comment_data($comment_id) {
//se non ricevo il campo nascosto di sicurezza non eseguo l'aggiornamento
if(!isset($_POST['extend_comment_update']) || !wp_verify_nonce($_POST['extend_comment_update'], 'extend_comment_update')) return;
if (isset($_POST['privacy']) && $_POST['privacy'] == 'on') {
//$privacy = wp_filter_nohtml_kses($_POST['privacy']);
update_comment_meta( $comment_id, 'privacy', 'si');
} else {
update_comment_meta( $comment_id, 'privacy', 'no');
}
}

Il codice è commentato è spiega cosa effettivamente fanno le funzioni implementate.

Ricorda di sostituire negli apici “inserisci qui il link della privacy” con il link che riporta alla tua pagina della Privacy Policy.

Conclusione

Hai visto Inserire checkbox consenso nei commenti WordPress i due semplici passaggi. Se hai difficoltà scrivimi nei commenti in modo da poterti aiutare.

 

Autore Bartolomeo

Mi chiamo Bartolomeo Alberico, sono un consulente tecnico con la passione per il web e la tecnologia e tutto quello che le ronza intorno.
Nel tempo libero scrivo articoli per il mio blog su argomenti vari, in particolare su WordPress e SEO.

Condividi questo articolo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Ho letto la policy privacy e accetto il trattamento dei miei dati personali in conformità al D.Lgs. 196/2003