Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/freiegestalterischerepublik/fgr-wc-order-export/archive/refs/heads/main.zipEin Plugin der Freien Gestalterischen Republik. Exportiert WooCommerce-Bestellungen automatisch als CSV-Datei – in einen Ordner auf dem Server, per E-Mail oder beides.
- Exportprofile mit eigenem Zeitplan, eigener Ausgabe und eigener Spaltenauswahl
- 97 Standardspalten, Format kompatibel zu Advanced Order Export 4.1.1: eine Zeile pro Artikel, Bestelldaten in jeder Zeile, Gutschein in jeder Artikelzeile, CSV mit Komma,
"und Windows-Zeilenumbrüchen, UTF-8 ohne BOM - Start per System-Cronjob über WP-CLI, damit die Dateien außerhalb der Website liegen können
Backend
FGR Plugins → Order Export zeigt alle Exportprofile, ob sich der Server-Cronjob meldet, und die allgemeinen Einstellungen. Jedes Profil hat:
- Name, aktiv/inaktiv
- Zeitplan, Uhrzeiten im 5-Minuten-Raster, mehrere pro Tag möglich:
- täglich / wöchentlich (Wochentage wählbar): exportiert alle Bestellungen seit dem vorigen Lauf. Der erste Lauf setzt nur den Startpunkt
- monatlich, quartalsweise, halbjährlich, jährlich: läuft am 1. Tag nach Ende des Zeitraums (1. des Monats; 1.1./1.4./1.7./1.10.; 1.1./1.7.; 1.1.) und exportiert genau den abgelaufenen Zeitraum, z. B. 01.10.–31.10. Bestellungen vom Exporttag selbst gehören zum nächsten Zeitraum. Der erste Lauf exportiert den ganzen abgelaufenen Zeitraum
- Ausgabe: in einen Ordner, per E-Mail oder beides
- Ordner: vollständiger Pfad außerhalb des Website-Ordners, pro Profil verschieden. Die Seite zeigt, wo die Website liegt, und ob der Ordner vorhanden und beschreibbar ist (prüft der Cronjob)
- E-Mail: Empfänger (mehrere mit Komma), Betreff mit Platzhaltern
{profil}{datum}{anzahl}{datei}, CSV als Anhang. Versand überwp_mail(), also WordPress-Standard oder ein eingerichtetes SMTP-Plugin. „Speichern und Test-Mail senden“ schickt die neuesten 3 Bestellungen - Klappt nur einer von zwei Wegen, gilt der Lauf als erledigt (Fehler im Protokoll), damit keine Bestellungen doppelt im Ordner landen. Schlagen alle Wege fehl, holt der nächste Lauf die Bestellungen nach
- Spalten: ein-/ausschalten, per Ziehen umsortieren, Beispielwerte aus der neuesten Bestellung. „Spalten zurücksetzen“ stellt die Standardspalten wieder her
- eigene Bezeichnung je Spalte – nur fürs Backend, gilt für alle Profile. Die Kopfzeile der Datei bleibt unverändert
- Protokoll der letzten 30 Läufe, Startpunkt setzen, CSV für einen Zeitraum herunterladen
Allgemeine Einstellung: Meta-Feld Versand-Artikelnummer – optionales Meta-Feld der Versandposition, dessen Wert in der Spalte Versand ArtikelNr. steht (sonst Name der Versandart).
Dateiname: orders-JJJJ-MM-TT-HH-MM-SS.csv. Keine Bestellungen → keine Datei, keine E-Mail.
Cronjob
Der Cronjob ruft alle 5 Minuten wp fgr-order-export cron auf; jedes aktive Profil, dessen Termin erreicht ist, läuft einmal (ein verpasster Termin wird einmal nachgeholt). Die passende Zeile für die Website steht im Backend, z. B. /etc/cron.d/<benutzer>_order-export:
*/5 * * * * <benutzer> /usr/bin/flock -n /tmp/<benutzer>_order-export.lock /usr/bin/php8.5 /usr/local/bin/wp --path=/pfad/zur/website fgr-order-export cron >> /var/log/<benutzer>_order-export.log 2>&1
Bewusst über die Kommandozeile: PHP über den Webserver darf wegen open_basedir meist nicht außerhalb des Website-Ordners schreiben.
WP-CLI
| Befehl | Zweck |
|---|---|
wp fgr-order-export cron |
für den Cronjob: fällige Profile starten |
wp fgr-order-export export [--profile=<id>] [--dry-run] |
sofort exportieren (ohne --profile: alle aktiven) |
wp fgr-order-export since "2026-10-20 00:00" [--profile=<id>] |
Startpunkt setzen |
wp fgr-order-export csv 5401,5402 [--profile=<id>] > datei.csv |
CSV für bestimmte Bestellungen ausgeben |
wp fgr-order-export profiles |
Profile mit Zeitplan, Ausgabe, letztem und nächstem Lauf |
Zusätzliche Datenquellen
| Spalte | Quelle |
|---|---|
_billing_kind / _shipping_kind |
Meta gleichen Namens, sonst Kassenfeld fgr/address-type der FGR-Block-Kasse (institution → institutionsadresse, privat → privatadresse); Versand nur, wenn die Lieferadresse abweicht |
| Geburtsdatum | Meta order_geburtsdatum, sonst Kassenfeld fgr/birthdate |
| Versand ArtikelNr. | Meta der Versandposition laut Einstellung, sonst Name der Versandart |
Dateien
fgr-wc-order-export/
├── fgr-wc-order-export.php # Header, Update-Checker
├── includes/
│ ├── class-fgr-wcoe-exporter.php # Spalten + Werte, CSV
│ ├── class-fgr-wcoe-profiles.php # Exportprofile, Zustand, Zeitplan, Bezeichnungen, Einstellungen
│ ├── class-fgr-wcoe-runner.php # fällige Profile, ein Lauf, Ordner/E-Mail
│ ├── class-fgr-wcoe-cli.php # WP-CLI-Befehle
│ └── class-fgr-wcoe-settings.php # Backend
├── lib/plugin-update-checker/
└── uninstall.php # löscht alle fgr_wcoe_*-Optionen
- DB-Optionen:
fgr_wcoe_profiles(Profile),fgr_wcoe_state_<id>(letzter Lauf, letzter Termin, Ordnerstatus, Protokoll),fgr_wcoe_labels(Backend-Bezeichnungen),fgr_wcoe_settings,fgr_wcoe_cron_seen - Updates: zentrale FGR-Update-API
https://fgr-plugins-api.fgr.design/fgr-wc-order-export.json. Bewusst kein Auto-Update: neue Versionen erscheinen unter Plugins als Update und werden von Hand eingespielt