Wie du Anhänge (AGB, Widerruf, etc.) zu deinen WooCommerce Bestell-E-Mails hinzufügst

   

Wenn du Dateien an deine WooCommerce Bestell-E-Mails anhängen möchtest, um deinen Kunden beispielsweise die Allgemeinen Geschäftsbedingungen, die Datenschutzbestimmungen oder die Widerrufsbelehrung im PDF-Format zukommen zu lassen, kannst du die nachfolgenden PHP Code Snippets verwenden. Bei den anzuhängenden Dateiformaten muss es sich nicht unbedingt um ein PDF handeln, du kannst auch andere Dateiformate an die Bestell-E-Mails anhängen (.jpg, .png, etc.).

1. PHP-Snippet: Einen Anhang, z. B. die AGB, zu den WooCommerce-Bestell-E-Mails hinzufügen

Öffne die Datei functions.php deines WordPress Themes und füge das folgende Code Snippet am Ende der Datei hinzu.

functions.php via FTP ändern

1. Starte deinen bevorzugten FTP-Client (z. B. Filezilla).
2. Stelle eine Remote-Verbindung zu deinem Hosting-Server her.
3. Navigiere zum Ordner /wp-content/themes/.
4. Öffnen den Ordner deines aktives Themes.
5. Suche nach der Datei functions.php.
6. Lade die Datei functions.php herunter.
7. Öffne die Datei functions.php mit einem Texteditor (z. B. Notepad++).
8. Bearbeite und speichere deine Datei.
9. Lade die aktualisierte functions.php auf deinen Hosting-Server hoch.

functions.php im WordPress-Backend ändern

1. Logge dich im WordPress-Backend ein.
2. Navigiere im Admin-Menü zu Design > Theme-Editor.
3. Klicke rechts im Dateiexplorer auf die Datei functions.php.
4. Füge deine Änderungen und Ergänzungen am Ende der Datei ein.
5. Speichere deine Ergänzungen und Änderungen.

/**
 * DEVSLIFE // add a single attachment to woocommerce order emails
 * @link https://devslife.de
 */
add_filter( 'woocommerce_email_attachments', 'devslife_attach_file_to_order_emails', 10, 3);
function devslife_attach_file_to_order_emails( $attachments , $email_id, $order ) {

  if( ! is_a( $order, 'WC_Order' ) || ! isset( $email_id ) ) {
    return $attachments;
  }
  // wenn du ein child-theme nutzt, verwende get_stylesheet_directory() anstelle von get_template_directory()
  $filepath = get_template_directory() . '/agb.pdf';
  $attachments[] = $filepath;
  return $attachments;

}
PHP

2. PHP-Snippet: Hinzufügen mehrerer Anhänge zu WooCommerce-Bestell-E-Mails

Wenn du mehrere Anhänge zu den WooCommerce-E-Mails hinzufügen möchtest, kannst du das 1. PHP-Snippet um weitere Pfade für die Dateianhänge erweitern.

In dem nachgfolgenden Beispiel, füge ich den Bestell-E-Mails die AGB, das Impressum, die Widerufsbelehrung sowie die Datenschutzerklärung bei.

Damit die anzuhängenden Dateien nicht im globalen Theme-Ordner untergehen und gut zuzuordnen sind, habe ich für die Datei-Anhänge einen Extra-Ordner „email-attachments“ im Theme-Ordner angelegt.

/**
* DEVSLIFE // add a multiple attachments to woocommerce order emails
* @link	https://devslife.de
*/
add_filter( 'woocommerce_email_attachments', 'devslife_attach_multiple_files_to_order_emails', 10, 3);
function devslife_attach_multiple_files_to_order_emails( $attachments , $email_id, $order ) {

  if ( ! is_a( $order, 'WC_Order' ) || ! isset( $email_id ) ) {
    return $attachments;
  }
  
  // wenn du ein child-theme nutzt, verwende get_stylesheet_directory() anstelle von get_template_directory()
  $filepath_terms = get_template_directory() . 'email-attachments/agb.pdf';
  $filepath_withdraw = get_template_directory() . 'email-attachments/widerruf.pdf';
  $filepath_imprint = get_template_directory() . 'email-attachments/impressum.pdf';
  $filepath_privacy = get_template_directory() . 'email-attachments/datenschutz.pdf';

  $attachments[] = $filepath_terms;
  $attachments[] = $filepath_withdraw;
  $attachments[] = $filepath_imprint;
  $attachments[] = $filepath_privacy;

  return $attachments;
  
}
PHP

Das war’s auch schon!

Happy Coding : )

#devslife

Eine Antwort zu „Wie du Anhänge (AGB, Widerruf, etc.) zu deinen WooCommerce Bestell-E-Mails hinzufügst“

  1. Johannes

    Danke, funktioniert sehr gut in meinem Woocommerce-Shop !