Haushaltsbuch
Das Modul ist ein persönliches Haushaltsbuch für Ausgaben und Einnahmen. Jede Person bekommt beim ersten Aufruf automatisch ein eigenes Buch, das nur sie selbst sieht. Ein Eintrag ist ein Beleg mit Datum, Bezeichnung und optional Bestellnummer, Notiz und Belegdateien. Der Betrag lässt sich auf mehrere Positionen aufteilen, jede mit eigener Zuständigkeit und Kategorie. Fixkosten werden automatisch gebucht, Monat und Jahr werden ausgewertet und lassen sich drucken oder als CSV exportieren.
Beträge werden in deutscher Schreibweise eingegeben: „12,50“, „1.234,56“ und auch „12.50“ funktionieren. Ein Punkt mit genau drei Ziffern danach gilt als Tausenderpunkt, „1.500“ sind also 1.500 Euro.Allgemein
Einträge und Positionen
Ein Eintrag ist entweder eine Ausgabe oder eine Einnahme. Standardmäßig hat er eine Position mit Betrag, Zuständigkeit und Kategorie. Über „Aufteilen“ kommen weitere Positionen hinzu, zum Beispiel wenn eine Amazon-Bestellung teils Weihnachtsgeschenke und teils Haushaltsbedarf enthält. Bestellnummer und Belegdateien stehen dann nur einmal am Eintrag, die Auswertung rechnet über die Positionen.
Zuständigkeiten und Kategorien
Jede Position hat zwei Felder: die Zuständigkeit (wer trägt die Kosten, etwa „Ich“ oder „Gemeinsam“) und die Kategorie (wofür, etwa „Lebensmittel“ oder „Weihnachten“). Beide Begriffe werden beim ersten Verwenden gemerkt und danach als Vorschlag angeboten. Im Tab „Zuständigkeiten & Kategorien“ lassen sie sich umbenennen, einfärben, archivieren oder löschen. Archivierte Begriffe werden nicht mehr vorgeschlagen, bleiben aber in alten Einträgen und Auswertungen erhalten. Wer einen Begriff wie einen vorhandenen umbenennt, führt beide zusammen.
Fixkosten
Fixkosten und feste Einnahmen werden als Vorlage mit Betrag, Zuständigkeit, Kategorie, Rhythmus (monatlich, alle 2 Monate, vierteljährlich, halbjährlich, jährlich), Tag im Monat sowie Start- und optional Endmonat angelegt. Sobald ein fälliger Monat geöffnet wird, bucht das Modul die Vorlage einmalig als normalen Eintrag. Gebuchte Einträge lassen sich danach frei ändern oder löschen, ein gelöschter Eintrag kommt nicht wieder. Die Jahresansicht bucht alle fälligen Monate bis einschließlich des aktuellen Monats.
Auswertung und Export
Monats- und Jahresansicht zeigen Einnahmen, Ausgaben und Saldo, die Monatsansicht zusätzlich die Veränderung der Ausgaben zum Vormonat. Darunter folgen Tabellen nach Zuständigkeit und nach Kategorie mit Anteil an den Ausgaben sowie eine Kreuztabelle Zuständigkeit mal Kategorie. Die Jahresansicht hat ein Balkendiagramm und eine Monatstabelle, jeder Monat ist anklickbar. Unter „Abrechnung & Export“ gibt es eine Druckansicht, über die der Browser ein PDF erzeugt, und einen CSV-Export, beide wahlweise für alle oder nur eine Zuständigkeit.
Zugriff
Nutzen dürfen das Haushaltsbuch eingeloggte Mitglieder der Site, deren Rolle unter Weinhold → Nutzerverwaltung → Modulberechtigungen die Berechtigung „Ansehen“ für das Haushaltsbuch hat. Standardmäßig ist keine Rolle freigeschaltet. Niemand sieht fremde Bücher, auch Administratoren nicht, und die Admin-Seite zeigt nur die Anzahl der Bücher und Einträge.
Shortcodes
Shortcode Beschreibung [weinhold_household_book] Das komplette Haushaltsbuch mit den Tabs Monat, Jahr, Fixkosten sowie Zuständigkeiten & Kategorien. Keine Parameter, jede Person sieht ihr eigenes Buch.
modules/household_book/db.php – Tabellen, Install und Cleanup, Lesen und Schreiben von Büchern, Begriffen, Einträgen und Positionen, Geld- und Monatshelfer, Fixkosten-Buchung und Auswertung. modules/household_book/files.php – Belegdateien: Upload, geschützte Auslieferung und Löschen. modules/household_book/frontend.php – Zugriffsprüfung, Formularverarbeitung, Druckansicht und CSV-Export, alle Ansichten des Shortcodes und das Inline-JS. modules/household_book/admin.php – Admin-Seite mit Hinweisen und Zahlen, ohne Buchinhalte. assets/weinhold_household_book.css – Styles mit dem Präfix .weinhold-household-book-, inklusive Handy-Layout und Druckansicht.Dateien
modules/household_book.php – Modul-Header und init(): Install, Hooks, Audit-Log-Aktionen und Shortcode-Registrierung.
Für Entwickler
Datenbank
Alle Tabellen liegen pro Site (Präfix der jeweiligen Site) und werden per dbDelta() angelegt, Versionsschlüssel ist die Option weinhold_household_book_db_version. Die Spalte book_id steht schon in allen Tabellen, damit später mehrere oder gemeinsame Bücher ohne Umbau möglich sind. Beträge werden als Ganzzahl in Cent gespeichert.
Tabelle Inhalt {prefix}weinhold_hb_books Ein Buch pro Person (owner_user_id), wird beim ersten Aufruf angelegt {prefix}weinhold_hb_terms Zuständigkeiten und Kategorien (kind responsibility oder category), mit Farbe und Archiv-Kennzeichen, eindeutig pro Buch, Art und Name {prefix}weinhold_hb_entries Einträge mit Art, Datum, Bezeichnung, Bestellnummer, Notiz und gegebenenfalls der Fixkosten-Vorlage {prefix}weinhold_hb_positions Positionen eines Eintrags mit Betrag in Cent, Zuständigkeit, Kategorie und optionaler Bezeichnung {prefix}weinhold_hb_files Belegdateien eines Eintrags (gespeicherter und ursprünglicher Name, MIME-Typ, Größe) {prefix}weinhold_hb_recurring Fixkosten-Vorlagen mit Rhythmus, Tag, Start- und Endmonat {prefix}weinhold_hb_recurring_runs Merkt pro Vorlage und Monat, dass gebucht wurde (Unique-Key auf recurring_id und month) Fixkosten ohne Doppelbuchung
weinhold_household_book_apply_recurring() läuft beim Öffnen eines Monats. Für jede fällige Vorlage wird zuerst der Eintrag in recurring_runs geschrieben und erst danach der Beleg. Der Unique-Key verhindert so doppelte Buchungen auch bei parallelen Aufrufen, und weil der Run-Eintrag bleibt, wird ein gelöschter Fixkosten-Eintrag nicht erneut gebucht. Fällig ist eine Vorlage, wenn sie aktiv ist, der Monat im Zeitraum liegt und der Abstand zum Startmonat durch den Rhythmus teilbar ist.
Formulare und Parameter
Alle Formulare werden in weinhold_household_book_handle_frontend_actions() am Hook wp verarbeitet, mit Nonce pro Aktion und Weiterleitung danach (Post/Redirect/Get). Die Ansicht wird über Query-Parameter gesteuert:
Parameter Beschreibung hb_view month, year, recurring oder terms hb_month Monat der Monatsansicht im Format JJJJ-MM hb_year Jahr der Jahresansicht hb_edit ID des Eintrags bzw. der Vorlage, die bearbeitet wird hb_new Formular für einen neuen Eintrag geöffnet anzeigen hb_msg Rückmeldung nach dem Speichern oder Löschen Belegdateien
Erlaubt sind JPG, PNG, GIF, WebP, HEIC und PDF bis 15 MB, geprüft per wp_check_filetype_and_ext(). Die Dateien liegen außerhalb der Mediathek unter uploads/sites/{id}/weinhold-household-book/{book_id}/ mit zufälligem Dateinamen, der Ordner ist per .htaccess gesperrt und enthält eine leere index.php. Ausgeliefert wird nur über ?weinhold_household_book_file=ID mit Nonce, nachdem geprüft ist, dass die Datei zum Buch der angemeldeten Person gehört.
Export
?weinhold_household_book_export=print oder csv mit hb_period (JJJJ-MM oder JJJJ), optional hb_resp (ID einer Zuständigkeit) und Nonce weinhold_household_book_export. Die CSV ist mit Semikolon getrennt, hat ein UTF-8-BOM für Excel und vorzeichenbehaftete Beträge.
Audit-Log
Aktion Bedeutung entry_saved Eintrag gespeichert entry_deleted Eintrag gelöscht recurring_saved Fixkosten-Vorlage gespeichert recurring_deleted Fixkosten-Vorlage gelöscht term_saved Begriff gespeichert oder zusammengeführt term_deleted Begriff gelöscht
Das Löschen eines Begriffs entfernt nur die Zuordnung, die Positionen bleiben mit „Ohne Zuständigkeit“ bzw. „Ohne Kategorie“ erhalten. Das Löschen einer Fixkosten-Vorlage lässt bereits gebuchte Einträge stehen. Änderungen an einer Vorlage gelten nur für Monate, die noch nicht gebucht wurden. Ein PDF entsteht über die Druckfunktion des Browsers auf einer eigenen, druckoptimierten Seite. Eine PDF-Bibliothek wird nicht verwendet. Auf dem Handy öffnet ein Tipp auf den Monatsnamen direkt die Monatsauswahl, breite Tabellen werden dort kompakter dargestellt und Fixkosten-Vorlagen als Karten.Besonderheiten
Die Bücher sind bewusst privat: Weder die Admin-Seite noch das Audit-Log zeigen Beträge oder Bezeichnungen, und auch Administratoren können fremde Bücher nicht öffnen.
Versionshistorie
Version Datum Änderung 1.0.0 02.11.2026 Erste Veröffentlichung: Bücher pro Person, Einträge mit aufteilbaren Positionen, Zuständigkeiten und Kategorien, Fixkosten, Monats- und Jahresauswertung, Druckansicht und CSV-Export, geschützte Belegdateien. 1.0.1 03.11.2026 Handy-Ansicht überarbeitet: kein seitliches Scrollen mehr, Monatsauswahl über den Monatsnamen, einspaltige Formulare, Fixkosten als Karten, kurze Monatsnamen in der Jahrestabelle. 1.1.0 07.11.2026 Farben über das Modul Design einstellbar (Tab Haushaltsbuch, Standard sind die bisherigen Farben; die Druckansicht bleibt unverändert). Karten, Hinweise, Tabellen und Badges nutzen die gemeinsamen UI-Bausteine des Frameworks. Fehlerhinweise ohne geöffnetes Buch (z. B. nicht angemeldet) haben wieder ihre Hintergrundfarbe. 1.2.0 07.11.2026 Schriften über das Modul Design einstellbar: Text (samt Formularfeldern), Überschriften, Buttons und Reiter sowie Beträge. Druckansicht und PDF bleiben unverändert. Ohne Auswahl gilt wie bisher die Schrift des Themes.