Google Recaptcha V3 e contact form 7: come rimuoverlo dalle pagine dove non serve

Rimuoveregooglerecaptcha

Attraverso le form realizzate con Contact Form 7 è molto semplice utilizzare il sistema antispam di Google, Il Google Recaptcha.

Una volta generate le chiavi dal menu “integrazioni”  del plugin:

Rimuovere Googlerecaptchav3 step 1

 

Rimuovere Googlerecaptchav3 step 2

 

è sufficiente inserire lo shortcode [recaptcha] all’interno dell’editor della form:

 

Rimuovere Googlerecaptchav3 step 3

 

…per avere il noto badge che, a seconda delle impostazioni settate sulla console di Google Recaptcha, mostrerà il controllo antispam sotto forma di semplice checkbox da spuntare, piuttosto che di domande a cui rispondere, calcoli da eseguire, etc….

 

Come rimuovere Google Recaptcha

 

Bello no?

Peccato che a partire dalla versione 5.1 di Contact Form 7, è stato adottato il sistema di Google Recaptcha con le chiavi API V3… 🙂

Da un lato c’è il vantaggio che le form saranno automaticamente protette e chi proviene da precedenti versioni, non dovrà neanche aggiornare gli shortcode, ma dall’altro, è stato deciso di inserire, in tutte le pagine del sito, un vistoso badge che informa che il sito è protetto da tale sistema!

Tutto questo non ha avuto solo ripercussioni da un punto di vista estetico/grafico (non bastava visualizzare quel badge solo nelle pagine dove si trovano le form???) danneggiando a mio avviso anche la user experience del navigatore, ma anche a livello di performance, dal momento che il pacchetto che viene scaricato aggiunge kb al peso delle pagine,  e peggiora i punteggi delle metriche e  le performance misurate dai vari tool che vanno tanto di moda tra gli sviluppatori e le agenzie SEO come boomerang per colpire o essere colpiti a seconda di chi le legge… 🙂

Rimuovere Googlerecaptchav3 5

La soluzione: visualizziamo Google Recaptcha solo dove serve!

Fortunatamente esistono delle soluzioni, ecco come fare:

Aprite il file functions.php del vostro tema ( ricordatevi di lavorare sempre con il tema figlio in WordPress!) e inserite la seguente funzione passando i corretti parametri al metodo is_page().

function rimuovi_recaptcha_badge(){
//id della pagina dove si trova la form
if ( !is_page( array( 26 ) ) ) { 
wp_dequeue_script('google-recaptcha');
}
}
add_action( 'wp_enqueue_scripts', 'rimuovi_recaptcha_badge' );

Grazie a questa funzione, sfruttando il metodo is_page(), andremo a fare il “dequeue” selettivo dello script, in base alla istruzione condizionale che indichi il caso di NON trovarsi nella pagina/e in cui effettivamente sia necessario Google Recaptcha.

See you soon!