Come disabilitare l'autocompletamento per gli input in Contact Form 7?

25 set 2018, 11:32:42
Visualizzazioni: 18.5K
Voti: 2

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>
0
Tutte le risposte alla domanda 3
0

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.

25 set 2018 13:43:25
2

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;
}
9 lug 2019 20:48:07
Commenti

Fantastico. Grazie per aver pubblicato la risposta per la versione aggiornata.

Varsha Dhadge Varsha Dhadge
10 lug 2019 10:59:01

È pazzesco, l'unico che ha funzionato!! Grazie amico!!

Rodrigo Zuluaga Rodrigo Zuluaga
14 lug 2020 00:15:09
0

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.

10 dic 2019 05:12:05