Wie kann ich das Kontaktformular ausblenden und zeigt “gesendet!” nach erfolgreichem Versand

Lesezeit: 5 Minuten

Benutzeravatar von HTML Man
HTML-Mann

Ich verwende das Contact Form 7-Plugin in einer WordPress-Vorlage. Ich habe das Formular und das zugehörige CSS erstellt, also funktioniert alles einwandfrei. Ich muss Folgendes tun, wenn ich auf die Schaltfläche „Senden“ klicke und eine erfolgreich gesendete E-Mail erhalten habe. das Formular sollte verschwinden und zeigt “Gesendet!” stattdessen. Ich muss den Code kennen, den ich ändern muss. Bitte sehen Sie sich das Foto an, das zeigt, was ich gerne mache

Geben Sie hier die Bildbeschreibung ein

  • Ziemlich ärgerlich ist, dass der Entwickler von Contact Form 7 lediglich angibt, dass es nicht nötig sei, nach dem Absenden eines Formulars auf eine neue Seite zu springen. Er scheint nicht zu verstehen, dass das Anzeigen des Formulars selbst nach dem Absenden für den Benutzer verwirrend ist.

    – Kokodoko

    14. April 2014 um 11:24 Uhr

“on_sent_ok:” und “on_submit” wurden aus Contact Form 7 5.0 entfernt, daher müssen Sie eine der 2 verfügbaren Optionen verwenden.

  1. wpcf7submit
  2. wpcf7mailgesendet

Um das Formular auszublenden, müssen Sie den Ereignis-Listener entweder in Ihrer js-Datei hinzufügen oder mit dem erwähnten Skript als Aktion in der Fußzeile hinzufügen:

add_action( 'wp_footer', 'contact_form_sent' );

function contact_form_sent() {
?>
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
    if ( 'FORM_ID' == event.detail.contactFormId ) { //Use this only when targeting specific form.
         document.getElementById('DIV_ID_OF_FORM').style.display = 'none';
    } //Use this only when targeting specific form.
}, false );
</script>
<?php
}

  • Das funktioniert, aber es gibt viel einfachere Möglichkeiten mit CSS, wie ich unten schreiben werde …

    – AdamJones

    8. Oktober 2020 um 13:01 Uhr

Benutzeravatar von Bibisha Jacob
Bibisha Jakob

Wenn Sie das Formular ausblenden und die Dankesnachricht anzeigen möchten, können Sie das folgende CSS verwenden.

.wpcf7-form.sent p
{
    display:none;
}

  • In aktuellen Versionen von WPF7 funktioniert das nicht, da die Erfolgsmeldung in der .wpcf7-form.sent Container, und soweit ich das beurteilen kann (derzeit, aber vielleicht nicht in der im Oktober 2015 verfügbaren Version) gibt es keine p Markup in diesem Container.

    – inspiriertz

    23. Mai 2017 um 8:55 Uhr


  • Das ist die richtige Antwort für WPF7.5 und höher, da die anderen Methoden nicht mehr funktionieren.

    – Jürgen

    7. Juni 2018 um 14:21 Uhr

Um das Kontaktformular 7 auszublenden, müssen Sie den folgenden Code hinzufügen, im Einstellungsbereich des Kontaktformulars 7 generieren Sie ihn bereits

on_sent_ok:  "document.getElementById('contactform').style.display = 'none';"

„contactform“ ist die ID des „div“, das die Tags Ihres Kontaktformulars enthält.

  • Verbirgt sich dadurch nicht auch die „Gesendet/Erfolg“-Meldung?

    – Kokodoko

    14. April 2014 um 11:23 Uhr

  • Diese Lösung schreibt nicht “Gesendet!”, sondern blendet den Kontakt nur als Reaktion auf das Senden einer E-Mail aus.

    – HTML-Mann

    18. April 2014 um 13:46 Uhr

  • „Gesendet/Erfolg“ wird automatisch in Contact Forms 7 angezeigt, nachdem Sie auf „Senden“ geklickt haben. Am besten wäre es, wenn das ursprüngliche Formular ausgeblendet wird, aber die „gesendete“ Nachricht sichtbar bleibt. Eine ziemlich seltsame Auslassung für ein so mächtiges Plugin.

    – Kokodoko

    18. April 2014 um 13:54 Uhr

  • Dies ist nach Updates des Plugins nicht mehr gültig. Die Erfolgsmeldung ist jetzt im

    -Tag des Markups enthalten, sodass beim Anwenden dieser Lösung auch die Erfolgsmeldung ausgeblendet wird.

    – agr103

    4. September 2014 um 10:28 Uhr

  • Das funktioniert nicht mehr. Verwenden Sie on_sent_ok: “$(‘#form-id’).hide();” stattdessen.

    – public9nf

    11. März 2016 um 15:54 Uhr

Benutzeravatar von Ravinder Kumar
Ravinder Kumar

Fügen Sie diesen Code in Zusätzliche Einstellungen im Kontaktformular 7 Admin hinzu.

on_sent_ok: "var name = $('.wpcf7 input[name=your-name]').val();

var email = $('.wpcf7 input[name=your-email]').val();

$('.wpcf7').hide();

$('.head_er').hide();

$('.conversations').show();

$('.conversations').html('<p>Thank you.</p>');

$('.conversations').html('<p>We will respond to your email shortly.</p>');"

oder Sie können den folgenden Link sehen

http://ravinderrathore.herobo.com/contact-form-7-thank-you-success-messages/

Es gibt mehrere Möglichkeiten, dies zu tun, es hängt hauptsächlich davon ab, wie Sie Ihr Formular erstellt haben, aber dies sollte mit einem einfachen Formular funktionieren, das den neuen Ereignismodus verwendet:

<script type="text/javascript">
/* <![CDATA[ */
document.addEventListener( 'wpcf7mailsent', function( event ) {
  jQuery(".wpcf7-form.sent").find('p').hide();
}, false );
/* ]]> */
</script>

Sie können diesen Code in das Hauptformular einfügen (ohne Leerzeilen oder cf7 fügt hinzu
und

Tags) oder mit einer js-Datei, die zumindest mit dem Formular geladen würde.

Ich persönlich verwende es im Formular, um auch Call-to-Analytics- und AdWords-Conversion-Code einzuschließen.

  • schöne und clevere Lösung

    – Jürgen

    7. Juni 2018 um 14:30 Uhr

Benutzeravatar von jplozano
jplozano

on_sent_ok:  "$('.wpcf7-form.sent p').hide();"

Da die gesendete Nachricht nach dem Absenden des Formulars in das Formular eingefügt wird, müssen wir alle Absätze ausblenden, um zu vermeiden, dass die Nachricht (die als DIV gekennzeichnet ist) ausgeblendet wird.

  • schöne und clevere Lösung

    – Jürgen

    7. Juni 2018 um 14:30 Uhr

Wenn Sie das Formular nur ausblenden und kein Skript verwenden möchten, können Sie dies tun:

.wpcf7-form.sent
{
    display:none;
}

#thankYou
{
    font-size: 18px;
    display: none;
}

Dann füge ich in meinem HTML-Code nach dem Kontaktformular 7-Kurzcode Folgendes ein:

<div id="thankYou">Thank you</div>

Schließlich verwende ich in meinen Einstellungen:

on_sent_ok:  "$('#thankYou').show()"

Dieser Ansatz gefällt mir am besten, weil ich damit tatsächlich eine Nachricht anzeigen kann (im Gegensatz zu anderen Antworten, die nur das Formular ausblenden). Dies scheint auch einen Teil des “Blitzes” zu reduzieren, den ich gesehen habe, da das Ausblenden dank reinem CSS sofort erfolgt.

  • Ja, dies ist bei weitem der beste Ansatz, wenn auch nicht unbedingt für Benutzer mit Screenreadern.

    – agr103

    4. September 2014 um 10:50 Uhr

  • Ich mag das nicht, weil es zusätzliche Arbeit erfordert und, was noch wichtiger ist, Kenntnisse darüber, wie man HTML schreibt. Die meisten Leute verwenden WP, weil sie keine Entwickler sind, insbesondere meine Kunden. Es ist also schwieriger, dies einem Kunden zu erklären. Viel einfacher, wie gesagt, und weiterhin das in WP7 integrierte Erfolgsfeld zu verwenden. Siehe meine Antwort hier.

    – Jeremy Miller

    2. Oktober 2014 um 0:45 Uhr

  • on_sent_ok und on_submit wurden offiziell aus Contact Form 7 5.0 entfernt.

    – Jürgen

    7. Juni 2018 um 14:22 Uhr

1401240cookie-checkWie kann ich das Kontaktformular ausblenden und zeigt “gesendet!” nach erfolgreichem Versand

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy