Come disabilitare l'autocompletamento per gli input in Contact Form 7?
Ho il seguente codice per Contact Form 7. Solitamente uso autocomplete="off"
per i campi input html. Tuttavia non riesco a capire come fare lo stesso per Contact Form 7
<div class="row">
<div class="col-md-6">
[text* FirstName placeholder "Nome"]
</div>
<div class="col-md-6">
[text* LastName placeholder "Cognome"]
</div>
<div class="col-md-12">
[email* EmailAddress placeholder "Indirizzo Email"]
</div>
<div class="col-md-12">
[text* desc placeholder "Raccontaci qualcosa di te..."]
</div>
<div class="col-md-12">
[submit "Invia"]
</div>
</div>

Secondo la domanda e risposta dello sviluppatore pubblicata qui: https://wordpress.org/support/topic/autocomplete-off-3/
È sufficiente aggiungere l'opzione autocomplete:off
allo shortcode:
[email your-email autocomplete:off "example@example.com"]
Tuttavia, se il plugin non è stato aggiornato come indicato in quella domanda per utilizzare autocomplete:false, Chrome potrebbe continuare a ignorarlo. Se ancora non funziona, potrebbe essere necessario contattare l'autore del plugin per supporto. La funzionalità autocomplete è stata aggiunta a questo plugin a partire dalla versione 4.5.

L'autocompletamento dei tag nelle impostazioni del form non funziona più (nella versione attuale del plugin Contact Form 7 5.1.3
).
L'unica soluzione che ha funzionato per me è stata aggiungere attributi personalizzati grazie a https://stackoverflow.com/a/46316728/1720476.
Ad esempio, se hai i campi FirstName
e LastName
dove vuoi disabilitare l'autocompletamento.
Aggiungi questo nel file functions.php
:
add_filter( 'wpcf7_form_elements', 'imp_wpcf7_form_elements' );
function imp_wpcf7_form_elements( $content ) {
$str_pos = strpos( $content, 'name="FirstName"' );
if ($str_pos) {
$content = substr_replace( $content, ' autocomplete="both" autocomplete="off" ', $str_pos, 0 );
}
$str_pos = strpos( $content, 'name="LastName"' );
if ($str_pos) {
$content = substr_replace( $content, ' autocomplete="both" autocomplete="off" ', $str_pos, 0 );
}
return $content;
}

La risposta suggerita da Arnis funziona se stai utilizzando lo stesso modulo in tutto il tuo sito, tuttavia, inietterà testo nei moduli che non hanno tutti i campi mirati nel tuo file functions.php.
Per una nuova soluzione suggerita:
Impostare l'attributo "autocomplete" dell'input o textarea su una variabile casuale che non sia un valore standard sembra funzionare a dicembre 2019 per Chrome, non è chiaro perché l'opzione nativa di CF7 per disabilitare l'autocompletamento non sia stata aggiornata.
Puoi definire questo attributo con una semplice riga jQuery come:
$("input.wpcf7-form-control, textarea.wpcf7-form-control").attr("autocomplete", "negative");
Questo si rivolge alla classe predefinita per i campi CF7.
Modifica: ho dimenticato di menzionare che questo richiede la conoscenza di dove aggiungere script JS personalizzati, la maggior parte dei temi premium supporta una sezione JS personalizzata o puoi semplicemente aggiungere la riga al file js principale del tuo child theme.
