Zum Inhalt springen
Startseite » CF7 Snippets » PDF-Datei nach dem Absenden

PDF-Datei nach dem Absenden

Schritt 1: Installation eines PDF-Plugins oder Bibliothek

Zunächst müssen Sie eine Bibliothek oder ein Plugin zur PDF-Erstellung einbinden. Hier verwenden wir die PHP-Bibliothek TCPDF, die häufig für solche Zwecke verwendet wird.

  1. Laden Sie TCPDF herunter und integrieren Sie die Bibliothek in Ihr WordPress-Theme oder als Must-Use-Plugin.

Schritt 2: Erstellung der PDF-Datei nach dem Absenden des Formulars

Nun erstellen wir eine Funktion, die nach dem Absenden des Formulars ausgelöst wird. Diese Funktion wird die Formularfelder sammeln, eine PDF-Datei erstellen und den Benutzer dazu auffordern, die Datei herunterzuladen oder zu drucken.

function generate_pdf_after_cf7_submit($contact_form) {
    // Überprüfen, ob es das gewünschte Formular ist
    $form_id = $contact_form->id();

    // Ersetzen Sie '123' durch die ID Ihres Formulars
    if ($form_id == 123) {
        // Laden Sie die TCPDF-Klasse
        require_once(get_template_directory() . '/tcpdf/tcpdf.php'); // Passen Sie den Pfad an

        // PDF erstellen
        $pdf = new TCPDF();

        // Dokumentinformationen einstellen
        $pdf->SetCreator(PDF_CREATOR);
        $pdf->SetAuthor('Ihr Name');
        $pdf->SetTitle('Formular Daten');
        $pdf->SetSubject('Formular Daten PDF');

        // Standard-Margins setzen
        $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);

        // Automatisches Seitenumbruch aktivieren
        $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

        // Schriftart setzen
        $pdf->SetFont('helvetica', '', 12);

        // Neue Seite hinzufügen
        $pdf->AddPage();

        // Sammeln der gesendeten Formularfelder
        $submission = WPCF7_Submission::get_instance();
        if ($submission) {
            $form_data = $submission->get_posted_data();
            $content = '';

            foreach ($form_data as $key => $value) {
                $content .= ucfirst($key) . ": " . $value . "\n";
            }

            // Text zum PDF hinzufügen
            $pdf->Write(0, $content, '', 0, 'L', true, 0, false, false, 0);
        }

        // PDF erzeugen und Ausgabe veranlassen
        $pdf->Output('formulardaten.pdf', 'I'); // 'I' für Inline-Ausgabe im Browser, 'D' für Download

        // Beenden, um das normale Absende-Verhalten zu verhindern
        exit();
    }
}
add_action('wpcf7_mail_sent', 'generate_pdf_after_cf7_submit');

Schritt 3: Erklärung der Funktion

  • TCPDF-Integration: Wir verwenden die TCPDF-Bibliothek, um die PDF-Datei zu erstellen. Die Bibliothek wird in das Theme geladen.
  • Formulardaten sammeln: Die Daten, die über das Formular gesendet werden, werden gesammelt und in das PDF-Dokument eingefügt.
  • PDF erstellen und anzeigen: Das PDF wird im Browser geöffnet ('I') oder direkt zum Download angeboten ('D').
  • Exit(): Verhindert, dass nach der PDF-Erstellung der normale Prozess des Formulars fortgesetzt wird.

Schritt 4: Hinzufügen zu WordPress

  • Bibliothek hinzufügen: Stellen Sie sicher, dass die TCPDF-Bibliothek korrekt in Ihrem WordPress-Theme oder Plugin eingebunden ist.
  • PHP-Code hinzufügen: Fügen Sie den obigen PHP-Code in die functions.php Ihres Themes oder in ein benutzerdefiniertes Plugin ein.

Nutzung:

  • Wenn ein Benutzer das Contact Form 7-Formular abschickt, wird automatisch ein PDF generiert, das entweder im Browser angezeigt oder zum Download bereitgestellt wird.

Anpassung:

  • Form-ID: Ersetzen Sie 123 im Code durch die ID des Formulars, für das Sie die Funktion aktivieren möchten.
  • TCPDF Pfad: Stellen Sie sicher, dass der Pfad zur TCPDF-Bibliothek korrekt ist, wenn Sie sie in Ihrem Theme verwenden.

Wichtiger Hinweis:

  • Diese Lösung ist relativ einfach und sollte je nach den spezifischen Anforderungen Ihres Projekts erweitert und angepasst werden. Falls Sie rechtlich verbindliche Dokumente erzeugen oder besondere Anforderungen an das Layout haben, könnte eine tiefere Anpassung erforderlich sein.

Diese Reaktion auswählenChatGPT

Reaktion 2

Um eine Funktion zu erstellen, die nach dem Absenden eines Contact Form 7-Formulars alle Felder als PDF ausgibt und zum Druck bereitstellt, sind mehrere Schritte notwendig. Diese Lösung umfasst sowohl das Erfassen der Formulardaten als auch das Generieren und Drucken eines PDFs.

1. Einbinden der PDF-Bibliothek

Zuerst müssen Sie eine PHP-Bibliothek integrieren, die das Erstellen von PDFs ermöglicht. Eine weit verbreitete und zuverlässige Bibliothek ist TCPDF oder FPDF. Diese kann entweder manuell in Ihr WordPress-Theme eingebunden werden oder durch Composer installiert werden.

2. Erstellen der Funktion für das Formular

Die Funktion muss die Formulardaten erfassen, ein PDF generieren und dann das PDF zum Download und Druck bereitstellen. Dazu können Sie den wpcf7_mail_sent-Hook verwenden, der nach dem erfolgreichen Senden des Formulars ausgeführt wird.

phpCode kopierenfunction cf7_generate_pdf($contact_form) {
    // Überprüfen Sie, welches Formular gesendet wurde (optional)
    $form_id = $contact_form->id();
    if ($form_id != 1234) { // Ersetzen Sie 1234 durch die ID Ihres Formulars
        return;
    }

    // Abrufen der Formulardaten
    $submission = WPCF7_Submission::get_instance();
    if ($submission) {
        $data = $submission->get_posted_data();
        
        // Beispielhafte Verarbeitung der Felder
        $name = isset($data['your-name']) ? $data['your-name'] : '';
        $email = isset($data['your-email']) ? $data['your-email'] : '';
        $message = isset($data['your-message']) ? $data['your-message'] : '';
        
        // Generieren des PDFs
        require_once('tcpdf/tcpdf.php'); // oder fpdf/fpdf.php
        
        $pdf = new TCPDF();
        $pdf->AddPage();
        $pdf->SetFont('helvetica', '', 12);
        
        // Fügen Sie hier die Formulardaten zum PDF hinzu
        $pdf->Cell(0, 10, "Name: " . $name, 0, 1);
        $pdf->Cell(0, 10, "Email: " . $email, 0, 1);
        $pdf->Cell(0, 10, "Message: " . $message, 0, 1);
        
        // Generiertes PDF anzeigen (im Browser)
        $pdf->Output('form_submission.pdf', 'I'); // 'I' für Inline-Anzeige
        
        // Optional können Sie das PDF auch auf dem Server speichern
        // $pdf->Output('/path/to/save/form_submission.pdf', 'F');
    }
}

add_action('wpcf7_mail_sent', 'cf7_generate_pdf');

3. Erklärung des Codes

  • wpcf7_mail_sent Hook: Diese Funktion wird aufgerufen, sobald das Formular erfolgreich gesendet wurde. Sie können die Formulardaten abgreifen und für die PDF-Erstellung verwenden.
  • Abrufen der Formulardaten: Mithilfe der WPCF7_Submission::get_instance()-Methode werden die gesendeten Daten abgerufen und anschließend in Variablen gespeichert.
  • PDF-Erstellung: Die TCPDF-Bibliothek wird verwendet, um ein PDF-Dokument zu generieren, das die Formulardaten enthält. Das PDF wird dann entweder direkt im Browser angezeigt oder zum Download angeboten.

4. Einbindung in das WordPress-Theme

  • Bibliothek einbinden: Stellen Sie sicher, dass die PDF-Bibliothek (z. B. TCPDF) korrekt eingebunden und in Ihrem Theme oder Plugin verfügbar ist.
  • Funktionsdatei anpassen: Kopieren Sie den obigen Code in die functions.php Ihres Themes oder in ein benutzerdefiniertes Plugin.

5. Testen und Anpassen

  • Formular testen: Übermitteln Sie das Contact Form 7-Formular und überprüfen Sie, ob das PDF wie gewünscht erstellt und angezeigt wird.
  • Druckoption hinzufügen: Der obige Code sorgt dafür, dass das PDF im Browser geöffnet wird, von wo aus der Benutzer es direkt drucken kann. Dies ist besonders nützlich, wenn das Formular auf öffentlichen Terminals oder für Dokumentationen verwendet wird.

Diese Lösung ermöglicht eine vollständige PDF-Ausgabe der Formulardaten nach dem Senden des Contact Form 7-Formulars und stellt sicher, dass das PDF direkt im Browser angezeigt und gedruckt werden kann.Diese Reaktion auswählen.