WooCommerce Version 2.1 – Mailbestätigung mit Rechtstexten

Heute möchte ich Euch zeigen wie man in die Mailbestätigung, die der Kunde nach einem Kauf erhält, seine Rechtstexte (AGB und Widerruf) integrieren kann. Damit ist man dann auch in dieser Hinsicht auf der sicheren Seite und der Kunde hat unmittelbar Zugriff auf diese wichtigen Informationen.

AGB und Widerruf

In einem ersten Schritt habe ich meine AGB und meinen Widerruf in eine HTML-Datei gepackt und dieser dann den Namen " rechtstexte.html " gegeben. Gespeichert habe ich diese dann in meinem woocommerce-Ordner in meinem Theme, und zwar in dem Unterordner " emails ". Sollte dieser noch nicht vorhanden sein, dann erstellt diesen bitte. Denn wir benötigen noch eine weitere. Dazu komme ich jetzt.

Templatedatei für WooCommerce Mailbestätigung anpassen

Nun brauchen wir die Datei " customer-processing-order.php ". Diese liegt im Template Ordner " emails " von WooCommerce. Diese kopieren wir jetzt in unseren eigenen Ordner wie oben beschrieben. Jetzt öffnen wir diese. Diese Datei liegt übrigens noch immer in der Version 1.6.4 vor. Da hat sich also in letzter Zeit nichts verändert. Nun platzieren wir unseren eigenen Hook so ziemlich ans Ende der Datei. Den Hook " woocommerce_email_footer " verwende ich nicht, da dieser auch Anwendung in anderen Kunden-Mails findet und ich nicht möchte, dass in jeglichen Kundennachrichten meine AGB und mein Widerruf angehängt werden. Das Ergebnis sieht dann so aus (Hook farblich markiert):

Nun benötigen wir natürlich noch die zugehörige Funktion in unserer " functions.php ". Diese seht Ihr unten. Zum Verständnis habe ich jede Zeile kommentiert:

Fertig. Jetzt werden in jeder Mailbestätigung einer Bestellung die Rechtstexte oder je nach Inhalt der Datei " rechtstexte.html " auch andere Inhalte integriert. Bis zum nächsten Mal.

[fb_share]

11 Antworten zu “WooCommerce Version 2.1 – Mailbestätigung mit Rechtstexten”

  1. Hallo Ralf,

    weißt du, wie man den spezifischen Namen des verwendeten Gutscheins in der Mail an den Kunden bzw. in den order details anzeigt?

    VG!

  2. Hallo,
    bei mir läuft es scheinbar auch nicht. Aber evtl. liegt es am Pfad für die rechtstexte.html.
    Wie muss der Pfad genau lauten?
    readfile(‚Link_zu_Euren_Rechtstexten/rechtstexte.html‘);

    Danke, Enrico

    • Hallo Enrico,

      hin und wieder funktioniert diese Version nicht. Besser ist eh, den Weg über einen realtiven Pfad zur entsprechenden Datei zu wählen. Im Beispiel unten befindet sich die Datei im (Child-)Theme-Ordner unter ‚woocommerce/emails/rechtstexte.html‘. Also dort, wo sich auch Deine style.css befindet. Der Code sieht folgendermaßen aus:

      < ?php function anhang_rechtstexte() { $datei_inhalt=''; //hier wird der Inhalt der Datei gespeichert ob_start(); // Ausgabepuffer, um gesamten Inhalt zu sammeln $file_dir = get_stylesheet_directory(); $file_dir = $file_dir . '/woocommerce/emails/rechtstexte.html'; readfile ($file_dir); //Datei einlesen $datei_inhalt=ob_get_contents(); // Inhalt in variable speichern ob_end_clean(); //Ausgabepuffer leeren echo $datei_inhalt; // Ausgabe } add_action('woocommerce_email_anhang_rechtstexte','anhang_rechtstexte'); ?>

      Dies sollte auf jeden Fall funktionieren. Bitte schreib doch kurz, ob dieser Weg auch bei Dir geht. Dann können auch andere davon profitieren.

      Grüße Ralf

      • Hallo,
        danke für die Antwort.

        Leider funktioniert es noch nicht, ich habe den Code etwas angepasst (nur die Bezeichnung):

        function anhang_impressum() {
        $datei_inhalt=“; //hier wird der Inhalt der Datei gespeichert
        ob_start(); // Ausgabepuffer, um gesamten Inhalt zu sammeln
        $file_dir = get_stylesheet_directory();
        $file_dir = $file_dir . ‚woocommerce/emails/emails_impressum.html‘;
        readfile ($file_dir); //Datei einlesen
        $datei_inhalt=ob_get_contents(); // Inhalt in variable speichern
        ob_end_clean(); //Ausgabepuffer leeren
        echo $datei_inhalt; // Ausgabe
        }
        add_action(‚woocommerce_email_anhang_impressum‘,’anhang_impressum‘);

        In der Datei „customer_new_account.php steht als letzte Zeile:

        Meine Datei heißt: „emails_impressum.html“ und liegt im Verzeichniss: „woocommerce/emails/“ (im Theme-Ornder).

        Wenn ich jetzt einen neuen Account registriere, dann bekomme ich zwar eine email, aber ohne die Inhalte der entsprechenden Datei.

        Viele Grüße
        Enrico

        • Hallo Enrico,

          so wie dies in meinem Beitrag beschrieben wurde, erscheinen die Rechtstexte in der Bestellbestätigungsmail. Daher wird dort auch der Actio-Hook eingebaut: Dieser lautet:

          < ?php do_action('woocommerce_email_anhang_rechtstexte'); ?>

          Jetzt ist mir nicht ganz klar, warum Du diese in die Accountregistrierung einbauen möchtest. Auf jeden Fall aber muss dort der Hook stehen. Leider steht in Deiner Nachricht nicht, ob Du dies gemacht hast.

          Grüße Ralf

          • Hallo Ralf,

            sorry, irgendwie scheint der Text nicht mit gepostet worden zu sein. Also in der Datei “customer_new_account.php“ steht als letzte Zeile:

            Kann ich den Hook denn überhaupt in dieser Form anpassen, oder habe ich da noch zusätzliche Dinge zu beachten?

            Ich möchte das in jede Mail einbauen (also nicht nur in die Accountregistrierung), da dummerweise bei WooCommerce jede Mail eine ellenlange Liste von Rechtstexten anfügt… Das möchte ich so in der Form nicht haben.

            Danke, Enrico

          • okay, das scheint so nicht zu klappen, hier noch mal die letzte Zeile:

            „do_action(‚woocommerce_email_anhang_impressum‘);‘

            allerdings mit „“

          • Hallo Enrico,

            bin leider die ganze Woche unterwegs. Kann nur hin und wieder mal reinschauen. Melde mich in der kommenden Woche, wenn ich mir das etwas genauer angeschaut habe.

            Grüße Ralf

  3. Hi!

    irgendwas scheint mit dem angegebenen Funktion (Code) für die function.php nicht zu stimmen. Oder wo genau muss man die Funktion reinkopieren. Oder liegt das an meiner aktuellen Version von WooCommerce 2.1.7 (neuere funtion.php)?

    Grüße
    schemaja

    • Hi schemaja,

      ne, die Funktion läuft auch mit der aktuellen WooCommerce 2.1.7. Die functions.php gehört zu Deinem Theme. Du musst also in Deinem aktivierten Theme-Verzeichnis suchen. Solltest Du ein Child-Theme verwenden, kann es sein, dass Du die functions.php erst anlegen musst. Was läuft denn genau bei Dir nicht?

      Grüße

      Ralf

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.