A
ttraverso 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:
è sufficiente inserire lo shortcode [recaptcha] all’interno dell’editor della form:
…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….
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… 🙂
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().
//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!
Leave a Comment