Scout Reimbursement Pro

Description

Scout Reimbursement Pro ist ein vollständiges Abrechnungssystem, das speziell für Pfadfindergruppen, Jugendorganisationen und gemeinnützige Vereine entwickelt wurde. Es löst ein häufiges Problem in der Vereinsarbeit: Mitglieder schießen Ausgaben vor – zum Beispiel für Zeltlager, Bastelmaterial oder Fahrtkosten – und müssen diese umständlich per E-Mail mit Anhang beim Vorstand einreichen. Dieses Plugin macht den gesamten Prozess digital, nachvollziehbar und sicher.

Wie es funktioniert

  1. Ein Mitglied füllt das Contact Form 7-Formular auf der Website aus und lädt seine Belege (Fotos oder PDFs) direkt vom Handy hoch.
  2. Der Vorstand erhält eine E-Mail mit allen Angaben und einem Freigabe-Link – ein Klick genügt.
  3. Nach der Freigabe erhält der Kassenwart automatisch eine strukturierte Auszahlungsmail mit IBAN-Endung, Betrag und Belegen.
  4. Sobald der Kassenwart die Zahlung veranlasst hat, markiert er sie per Link als „Bezahlt” – der Antragsteller wird automatisch benachrichtigt.
  5. Im WordPress-Backend behält der Administrator jederzeit den Überblick über alle Anträge, Statusänderungen und Jahresauswertungen.

Hauptfunktionen

Mobiloptimierter Datei-Upload
Der Upload-Bereich ist für die Nutzung auf dem Smartphone optimiert. Mitglieder können direkt mit der Kamera einen Kassenbon fotografieren oder eine bestehende Datei (JPG, PNG, PDF) hochladen. Mehrere Belege pro Antrag sind möglich.

Clientseitige Bildkomprimierung
Vor dem Upload werden Fotos automatisch im Browser auf maximal 1600×1600 Pixel und 80 % Qualität komprimiert. Das spart Serverkapazität und beschleunigt den Upload deutlich – besonders wichtig bei schlechter Mobilverbindung auf Lagern.

Sicherer Datei-Speicher
Alle hochgeladenen Belege werden in einem geschützten Verzeichnis außerhalb des öffentlichen WordPress-Upload-Ordners abgelegt. Eine .htaccess-Datei verhindert den direkten Zugriff von außen und die Ausführung von Skripten – die Dateien sind nur für Administratoren einsehbar.

E-Mail-basierter Freigabe-Workflow
Der gesamte Genehmigungsprozess läuft über E-Mail-Links – ohne dass sich Vorstand oder Kassenwart ins WordPress-Backend einloggen müssen. Jeder Link ist mit einem kryptografisch sicheren, zufälligen Token gesichert und kann nur einmal sinnvoll verwendet werden.

Drei-Stufen-Status
Jeder Antrag durchläuft die Stufen „Offen” „Freigegeben” „Bezahlt”. Rückwärts ist kein Statuswechsel möglich – ein bereits freigegebener Antrag kann nicht mehr abgelehnt werden. Das sorgt für eine lückenlose, revisionssichere Dokumentation.

Automatische Belegnummern
Jeder freigegebene Antrag erhält automatisch eine fortlaufende Belegnummer (N-1, N-2, …), die als unveränderliche Referenz für die Vereinsbuchhaltung dient.

Jahresbericht und Druckfunktion
Alle freigegebenen und bezahlten Belege eines Jahres lassen sich als druckoptimierte Übersicht ausgeben – mit digitalem Stempel (BEZAHLT / FREIGEGEBEN), Datum und allen zugehörigen Belegen. Ideal für die Jahreshauptversammlung oder den Steuerberater.

Statistik nach Kategorie
Im Backend gibt es eine Statistik-Ansicht, die Ausgaben nach Kategorie (z. B. „Fahrtkosten”, „Material”, „Lagerkosten”) aufschlüsselt und die Jahressumme ausweist. Die Daten werden gecacht, um die Datenbankbelastung minimal zu halten.

Nachträglicher Datei-Upload
Administratoren können über das Backend nachträglich weitere Belege zu einem bestehenden Antrag hinzufügen – etwa wenn ein Kassenbon per Post nachgereicht wird.

Sicherheit

  • Alle Formulareingaben werden vor der Datenbankablage bereinigt (sanitized)
  • Alle Ausgaben werden kontextgerecht escaped (esc_html, esc_attr, esc_url)
  • Admin-Aktionen sind mit WordPress-Nonces gesichert
  • E-Mail-Links nutzen kryptografisch sichere Tokens (20 Zeichen, alphanumerisch)
  • Datenbankabfragen ausschließlich über $wpdb->prepare()
  • Datei-Upload ausschließlich über wp_handle_upload() – keine direkte Verwendung von move_uploaded_file()
  • Erlaubte Dateitypen sind serverseitig auf JPG, PNG, GIF und PDF beschränkt
  • Maximale Dateigröße: 10 MB pro Datei

Voraussetzungen

  • WordPress 5.8 oder neuer
  • PHP 7.4 oder neuer
  • Contact Form 7 (muss installiert und aktiv sein)
  • Ein konfiguriertes Abrechnungsformular in Contact Form 7 mit den passenden Feldnamen

Unterstützte Sprachen

Das Plugin ist vollständig für Übersetzungen vorbereitet (alle Strings über __() und _e() internationalisiert, Text-Domain: scout-reimbursement-pro). Die Standardsprache der Benutzeroberfläche im Backend ist Deutsch.

Häufig gestellte Fragen

Brauche ich eine spezielle Hosting-Umgebung?

Nein. Das Plugin funktioniert auf jedem Standard-WordPress-Hosting mit PHP 7.4+ und aktiviertem wp_mail(). Für die .htaccess-Absicherung des Upload-Verzeichnisses wird ein Apache-Webserver empfohlen. Auf Nginx-Servern muss der Verzeichnisschutz manuell konfiguriert werden.

Wo werden die Belegdateien gespeichert?

Die Dateien werden im WordPress-Upload-Verzeichnis unter wp-content/uploads/scout-receipts/ abgelegt, aufgeteilt nach Jahr und Monat. Das Verzeichnis ist durch eine .htaccess-Datei vor direktem Zugriff geschützt.

Können Benutzer ohne WordPress-Konto Anträge stellen?

Ja. Das Einreichungsformular ist ein öffentliches Contact Form 7-Formular und erfordert keine Anmeldung. Lediglich die Freigabe- und Zahlungslinks sind durch sichere Tokens geschützt.

Was passiert, wenn jemand versucht, einen Link zweimal zu verwenden?

Das Plugin verhindert doppelte Statusänderungen serverseitig. Ein Freigabe-Link kann einen Antrag nur einmal freigeben – beim zweiten Klick wird eine entsprechende Hinweismeldung angezeigt. Dasselbe gilt für Ablehnungen und Zahlungsbestätigungen.

Kann ich das Plugin auch ohne Contact Form 7 verwenden?

Nein. Der Einreichungsprozess ist fest an Contact Form 7 gekoppelt. Das Plugin ist als Erweiterung für CF7 konzipiert und benötigt dessen Submission-API.

Werden die E-Mails über WordPress-eigene Funktionen verschickt?

Ja, ausschließlich über wp_mail(). Für zuverlässige E-Mail-Zustellung empfehlen wir ein SMTP-Plugin wie „WP Mail SMTP”.

Gibt es eine Exportfunktion?

Aktuell bietet das Plugin einen druckoptimierten Jahresbericht (HTML mit Druckstylesheet) an. Ein CSV-Export ist für eine zukünftige Version geplant.

Wie werden Belegnummern vergeben?

Belegnummern werden automatisch und fortlaufend vergeben, sobald ein Antrag vom Vorstand freigegeben wird. Die Nummerierung beginnt bei N-1 und wird über alle Jahre hinweg fortgeführt. Die Nummerierung kann nicht manuell geändert werden.

Ist das Plugin DSGVO-konform?

Das Plugin speichert personenbezogene Daten (Name, E-Mail, IBAN-Endung) in der WordPress-Datenbank. Betreiber müssen in ihrer Datenschutzerklärung auf diese Verarbeitung hinweisen. Das Plugin selbst übermittelt keine Daten an externe Server.

Screenshots

  • Antragsübersicht – Alle eingereichten Abrechnungen auf einen Blick mit Status-Badge und Schnellzugriff.
  • Detailansicht – Vollständige Antragsdetails inkl. hochgeladener Belegdateien und nachträglichem Upload.
  • Statistik-Tab – Ausgaben nach Kategorie aufgeschlüsselt, gefiltert nach Jahr.
  • Einstellungen – Konfiguration von Vorstandsmail, Kassenwart-Mail und Formular-ID.
  • Jahresbericht – Druckoptimierte Ausgabe mit digitalem Stempel.
  • Frontend-Formular – Mobiloptimierter Upload-Bereich mit Kamera- und Datei-Button.

Installation

  1. Lade den Plugin-Ordner scout-reimbursement-pro in das Verzeichnis /wp-content/plugins/ hoch.
  2. Aktiviere das Plugin über den Menüpunkt „Plugins” im WordPress-Backend.
  3. Stelle sicher, dass Contact Form 7 installiert und aktiv ist.
  4. Gehe zu Pfadi-Kasse Einstellungen und hinterlege:
    • Die E-Mail-Adresse des Vorstands (erhält neue Anträge und Freigabe-Links)
    • Die E-Mail-Adresse des Kassenwarts (erhält Auszahlungsaufträge nach Freigabe)
    • Die ID des Contact Form 7-Formulars für Abrechnungen
  5. Erstelle in Contact Form 7 ein Formular mit den Feldern your-name, your-email, your-subject, art, teilnehmer, von, bis, Betrag, IBAN und your-message.
  6. Füge im E-Mail-Template von Contact Form 7 die Tags [approve_link] und [reject_link] ein – das Plugin befüllt diese automatisch mit den sicheren Aktions-Links.
  7. Binde das Formular auf einer beliebigen WordPress-Seite per Shortcode ein.

Nach der Konfiguration ist das Plugin vollständig einsatzbereit.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Scout Reimbursement Pro” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.1.0

  • Neu: Englische Übersetzung (en_US) für alle Frontend- und Backend-Texte
  • Neu: Upload-Buttons und JS-Labels vollständig internationalisiert
  • Verbesserung: Upload-Button-Labels werden jetzt über wp_localize_script übergeben (übersetzbar)

1.0.0

  • Erstveröffentlichung
  • Vollständiger Einreichungs- und Freigabe-Workflow
  • Mobiloptimierter Datei-Upload mit clientseitiger Bildkomprimierung
  • Sicherer Datei-Speicher mit .htaccess-Schutz
  • E-Mail-Benachrichtigungen für alle Beteiligten
  • Fortlaufende Belegnummern
  • Jahresbericht mit Druckfunktion
  • Statistik-Auswertung nach Kategorie und Jahr
  • Vollständige WordPress Coding Standards-Konformität