Cum să dezactivezi autocompletarea pentru input-uri în Contact Form 7?
Am codul de mai jos pentru Contact Form 7. De obicei folosesc autocomplete="off"
pentru câmpurile de input HTML. Dar nu reușesc să aflu cum să fac același lucru pentru Contact Form 7.
<div class="row">
<div class="col-md-6">
[text* FirstName placeholder "Nume"]
</div>
<div class="col-md-6">
[text* LastName placeholder "Prenume"]
</div>
<div class="col-md-12">
[email* EmailAddress placeholder "Adresă de email"]
</div>
<div class="col-md-12">
[text* desc placeholder "Spune-ne câte ceva despre tine..."]
</div>
<div class="col-md-12">
[submit "Trimite"]
</div>
</div>

Conform întrebării și răspunsului de la dezvoltator plasat aici: https://wordpress.org/support/topic/autocomplete-off-3/
Trebuie doar să adăugați opțiunea autocomplete:off
la shortcode:
[email your-email autocomplete:off "example@example.com"]
Totuși, dacă plugin-ul nu a fost actualizat conform menționat în acea întrebare pentru a folosi autocomplete:false, Chrome s-ar putea să o ignore. Dacă încă nu funcționează, poate fi necesar să contactați autorul plugin-ului pentru suport. Funcționalitatea de autocomplete a fost adăugată în acest plugin începând cu versiunea 4.5.

Funcționalitatea de autocompletare a tag-urilor în setările formularului nu mai funcționează (în versiunea actuală a plugin-ului Contact Form 7 5.1.3
).
Singura soluție care a funcționat pentru mine a fost adăugarea de atribute personalizate datorită https://stackoverflow.com/a/46316728/1720476.
De exemplu, dacă aveți câmpuri precum FirstName
și LastName
, unde doriți să dezactivați autocompletarea.
Adăugați acest cod în fișierul 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;
}

Răspunsul sugerat de Arnis funcționează dacă utilizați același formular pe întregul site, însă va injecta text în formularele care nu au toate câmpurile vizate în fișierul functions.php.
Pentru o nouă soluție sugerată:
Setarea atributului "autocomplete" al input-ului sau textarea-ului la o variabilă aleatorie care nu este o valoare standard pare să funcționeze în decembrie 2019 pentru Chrome, nu sunt sigur de ce opțiunea nativă CF7 pentru dezactivarea autocomplete-ului nu a fost actualizată.
Puteți defini acest atribut cu o simplă linie de jQuery, cum ar fi:
$("input.wpcf7-form-control, textarea.wpcf7-form-control").attr("autocomplete", "negative");
Aceasta vizualizează clasa implicită pentru câmpurile CF7.
Editare: am uitat să menționez, acest lucru necesită cunoștințe despre locul unde să adăugați scripturi JS personalizate, majoritatea temelor premium acceptă o secțiune JS personalizată sau pur și simplu adăugați linia în fișierul JS principal al temei copil.
