WooCommerce PDF aus Daten erstellen und auf Server speichern

  • Hallo,

    Ich habe das Problem, dass ich gerade mehr oder weniger ins Kalte Wasser geworfen wurde, was WooCommerce betrifft und ich gerade ein Problem lösen muss, für das ich noch nicht so den Überblick habe und ich hoffe, dass mir dabei evtl. jemand helfen kann.

    Folgendes möchte ich machen:
    Sobald eine neue Bestellung eingeht, möchte ich eine PDF Datei erstellen, die ein paar Daten der Bestellung enthält (aber keine Rechnung/Lieferschein).
    Diese PDF Datei soll lokal auf meinem Server gespeichert werden und später weiterverarbeitet werden.

    Mein Plan basierend auf meinem Wissen:
    Sobald ein Trigger/Hook bezüglich einer neuen Bestellung ausgelöst wird, soll ein Funktion aufgerufen werden die mein PHP/HTML Template mit Daten füllt und eine weitere Funktion, die aus diesem Template dann eine PDF Datei erstellt.

    Fragen die ich habe:
    Gibt es dazu evtl. schon etwas fertiges was diese Funktion kann bzw. ähnliche Funktionen kann?
    Welcher Trigger wäre zu verwenden? (im Moment versuche ich es mit woocommerce_order_status_pending_to_processing_notification)
    Wie sieht der ungefähre Aufbau aus? Ich habe jetzt eine Funktion mit add_action in der functions.php, diese sammelt ein paar Daten der Bestellung und ruft dann eine Funktion auf, die die PDF Datei generieren soll. Diese Funktion soll das Template mit Daten fülen und dieses Template mit HTML2PDF bzw. FPDF konvertieren.

    Code hänge ich gleich an, bin gerade nicht an meinem Rechner.

    Vielen Dank schonmal,
    KingBuzzo

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Code für meine Funktion, die den PDF Generator mit bestimmten Werten aufrufen soll.

    Code um PDFs zu generieren.

    Leider läuft im moment nicht wirklich was, wenn jemand eine Idee hat, dann bitte melden.

  • Code für meine Funktion, die den PDF Generator mit bestimmten Werten aufrufen soll.

    Code
    add_action( 'woocommerce_order_status_pending_to_processing_notification', 'generate_tickets_pdf()' );
        add_action( 'woocommerce_order_status_failed_to_processing_notification',  array( $this, 'trigger' ) );

    Beide Aufrufe sind falsch.

    Zeile 1:
    generate_tickets_pdf() ist kein gültiger Funktionsaufruf. Die () sind in jedem Fall falsch und da die Funktion aus einem anderen Plugin stammt muss der Bezug dazu hergestellt werden. Entweder mit dem Constructor Klassenname::Funktion oder wie oft bei WordPress mit einer globalen Variable.

    Zeile 2:
    Da es sich nicht um eine PHP Klasse handelt ist der Aufruf mit $this nicht möglich.

    Ohne tiefer in die Plugins und das Vorhaben einzusteigen kann man da aber nicht wirklich helfen.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • So, ich melde mich nochmal, habe auch gemerkt, dass mein Code da oben eher Quatsch ist. Habe mich jetzt ein bisschen eingelesen und komme soweit, dass die PDF Datei auf dem Server erstellt wird, sobald eine bestimme Hook ausgelöst wird. Mein Problem ist jetzt, dass sich die PDF Datei nicht mit dem gewünschten Inhalt füllt. Ich habe es zuerst mit einer "statischen" PHP Datei getestet, in der alle Ausgaben gespeichert sind. Wenn ich jetzt aber eine PDF Datei aus einer PHP Datei die dynamisch gefüllt wird erstellen will, habe ich keinen Inhalt in der PDF Datei. Es liegt vermutlich daran, dass ich nicht auf die Werte, die verwendet werden sollen, zugreifen kann bzw. ich nicht genau weiß, wie ich auf diese zugreife.

    Ich hänge mal meinen gegenwärtigen Code an, vielleicht kann mir ja jemand weiterhelfen.

    Code in der functions.php

    Funktion generate_tickets_pdf

    Viele Grüße,
    KingBuzzo


  • Ich hänge mal meinen gegenwärtigen Code an, vielleicht kann mir ja jemand weiterhelfen.

    Ich wiederhole


    Ohne tiefer in die Plugins und das Vorhaben einzusteigen kann man da aber nicht wirklich helfen.

    Du sprichst nur von "Daten" und "Informationen" die in ein PDF geschrieben werden sollen. Der abenteuerlich anmutende Quellcode lässt zwar in etwa erahnen wo Du hin willst aber eben nicht mehr. Um zu helfen braucht man Fakten. So wie der Code aussieht hat sich aber nicht wirklich jemand Gedanken darüber gemacht wie das Ziel erreicht werden soll, woher die Daten kommen und welches Konstrukt dafür am besten geeignet ist.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Ok, ich versuch es mal zu erklären, wie gesagt, ich bin auch erst seit 2 Tagen mit dem Projekt beschäftigt und sicherlich nicht der größte Wordpress Profi.

    Es wird mit WooCommerce und dem Plugin the events calender und wootickets ein Shop betrieben, in dem Tickets verkauft werden. Die Tickets werden später per HTML email zugeschickt, das funktioniert alles soweit und das war mein Ausganspunkt für mein Vorhaben. Es sollen nämlich Daten, die auch im versendeten Ticket enthalten sind, z.B. Veranstaltungsname, Käufername etc., in eine PDF Datei geschrieben werden. Diese PDF Datei soll auf dem Server gespeichert werden und später (beim Check-In) dem Kunden übergeben werden. Sinn dahinter ist eine Art Zugangskontrolle + virtuelles Payment.
    Ich hab mir also nun gedacht, ich muss das Rad ja nicht neu erfinden, ich versuche einfach, basierend auf dem Script zum erstellen der Ticketemail, ein Script zu schreiben, welches die benötigten Daten in eben eine PDF Datei schreibt. Das Problem welches ich habe ist vermutlich, dass ich nicht auf die jeweiligen Werte, die das wootickets plugin bereitstellt, zugreifen kann.

  • Installiere Dir mal https://de.wordpress.org/plugins/woocom…-packing-slips/ und schau Dir das Ergebnis der PDFs an. In der Pro Version kannst Du eigene Templates erstellen und das müssen keine Rechnungen oder Lieferscheine sein ;-) Die PDF Engine ist schon dabei und anhand der beiliegenden Templates und der Doku findest Du auch sehr schnell heraus woher die Daten kommen ;-)

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Danke, sowas wäre interessant für mich. Weißt du ob ich damit auch auf Daten zugreifen kann, die von wootickets bzw. the event calender generiert werden?

  • Irgendwie kann ich meinen Beitrag nicht editieren. Also das Plugin habe ich bereits vorher einmal kurz ausprobiert und das würde auch für meine Zwecke passen, habs aber da nicht geschafft die Templates zu editieren, das geht aber ja anscheinend mit der Pro Version, wie von dir vorgeschlagen. Für mich ist es halt sehr wichtig, dass ich Daten aus dem Wooticket Plugin in einen Lieferschein/Rechnung einbinden kann, daran scheitert es ja jetzt gerade auch, wenn ich das damit machen kann, wäre diese Lösung perfekt. Wenn du mir dazu was sagen kannst, wäre das ganz gut, dann werde ich mir mal die Pro Version kaufen und damit rumprobieren.

  • Man kann immer und überall auf sämtliche Daten zugreifen ganz unabhängig von Plugins. Wie Du an die Daten kommst, also wo diese zu suchen sind, kann ich Dir ohne einen Blick in den Quellcode der Plugins oder die Datenbank nicht sagen, dazu müsste ich jedes Plugin kennen. Also Datenbank ansehen und Quellcode lesen.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!