Libre Bite – Restaurant POS, Kitchen Display (KDS) & QR Ordering for WooCommerce
Changelog
1.4.2
Fix: Drag & Drop in der Bestellübersicht entfernt – verhindert Scroll-Konflikte und fehlerhafte Aktionen auf Touch-Geräten.
Fix: Wake-Lock-Checkbox im POS aus dem Header in die Standort-Leiste verschoben (konsistent mit der Bestellübersicht).
Fix: Wake Lock auf Android/Samsung zuverlässiger – wird nach Tab-Wechsel und App-Wechsel automatisch neu angefordert.
Fix: Veraltete Drag-&-Drop- und Status-Referenzen in der Hilfedokumentation aktualisiert (3-Spalten-Kanban).
Übersetzungen: Fehlende Strings in allen fünf Sprachvarianten ergänzt (de_CH, de_CH_informal, de_DE, de_DE_formal, de_AT).
1.4.1
Fix: POS Gutschein-Rabatt wird nun korrekt in der Kassen-Ansicht angezeigt.
Fix: 5-Rappen-Rundung greift nun auch im POS-Warenkorb.
Fix: Lagerbestand-Toggle speichert Änderungen korrekt, auch bei variablen Produkten.
Fix: Staff-Benutzer können Bestellungen nun stornieren (lbite_manage_orders-Berechtigung).
Fix: Fehlende Übersetzung «Discount:» in allen Sprachpaketen ergänzt.
1.4.0
Feature: POS-Bestellungen sind immer sofort (nie Vorbestellung).
Feature: POS Standby-Verhinderung (Wake Lock) wie im Kanban-Board.
Feature: POS Gutschein-Feld – Gutscheine aus WooCommerce auswählbar und auf Bestellung anwenden.
Feature: POS Lagerbestand-Toggle – Produkt gedrückt halten zum Umschalten zwischen vorrätig/nicht vorrätig.
Feature: Bestellübersicht auf 3 Spalten reduziert (Vorbestellungen, Jetzt zubereiten, Abgeschlossen).
Feature: Kompaktes Kanban-Karten-Layout – Artikel prominent, mehr Karten gleichzeitig sichtbar.
Fix: Staff-Benutzer werden nicht mehr von WooCommerce aus dem WordPress-Backend umgeleitet.
Fix: QR-Code-Links mit Standort-Parametern leiten direkt zum Shop weiter.
1.3.10
Fix: Stornierung via Bestellübersicht erstellt keinen falschen WC-Rückerstattungs-Eintrag mehr für Offline-Gateways (BACS, COD); Online-Gateways (Stripe, TWINT) erhalten weiterhin eine automatische Rückerstattung.
Fix: Blauer Rand links an der ausgewählten Standort-Box im Checkout entfernt.
Fix: Übersetzung «Your Email» / «Support E-Mail» auf «Ihre/Deine E-Mail-Adresse» korrigiert (de_CH_informal, de_DE_formal hatten falsche Übersetzung aus früherem Fill-Script).
Feature: Produkt-Optionen heissen nun in allen deutschen Übersetzungen «Add-ons» statt «Optionen».
1.3.9
Fix: Vorbestellungen im Kanban-Board sind nun jederzeit stornierbar und manuell bearbeitbar, unabhängig von der Ausgrauen-Einstellung.
Feature: Neue Einstellung «Vorbestellungen ausgrauen» (getrennt von «Vorbestellungen anzeigen») – beide Optionen sind separat konfigurierbar.
Fix: Einstellungen «Vorbestellungen anzeigen/ausgrauen» werden nach dem Speichern nun korrekt persistiert (Checkbox-Status blieb zuvor immer auf «aktiviert»).
Fix: Fehlendes JS-String loadMoreError nun korrekt aus Übersetzungen geladen.
Fix: Falsche Übersetzung «Vorbestellungen prüfen» für «Zukünftige Vorbestellungen anzeigen» in de_CH_informal und de_DE_formal korrigiert.
Übersetzungen: Neue Strings für Vorbestellungs-Einstellungen in allen Sprachen ergänzt (de_CH, de_CH_informal, de_DE, de_DE_formal, de_AT).
1.3.8
Feature: «Kein Trinkgeld»-Button im Checkout ist neu im Backend konfigurierbar (Einstellungen → Trinkgeld).
Fix: Übersetzungen für de_CH_informal und de_DE_formal vervollständigt (Feiertage, Vollbild, Beleg, Zeitslot-Blocker u.a. waren noch auf Englisch).
Fix: fuzzy-Flags aus allen Sprachdateien entfernt – betroffene Strings (z.B. Trinkgeld-Optionen) erscheinen neu korrekt übersetzt.
1.3.7
Fix: Beleg-Versand aus dem Kanban-Board und der WooCommerce-Bestellansicht funktioniert nun korrekt, unabhängig davon ob der optimierte Checkout aktiv ist (AJAX-Endpoint wurde zu weit eingeschränkt registriert).
Fix: Bestellung stornieren erstattet die Zahlung nun korrekt zurück – Gateway-API wird zuverlässig aufgerufen (refund_payment-Flag ergänzt, Rückerstattung erfolgt vor Statusänderung).
Übersetzungen: fehlenden String im Standort-Hilfetext in allen Sprachen ergänzt.
1.3.6
Fix: Kanban-Board zeigt keine Bestellungen mehr mit Status «Bezahlung ausstehend» (pending) an – nur noch bezahlte Bestellungen (processing, on-hold) erscheinen.
Fix: Geplante Bestellungen werden nur noch automatisch in «In Bearbeitung» verschoben, wenn sie bezahlt sind.
Feature: Zahlungsbestätigungs-Polling als Fallback für TWINT und ähnliche Gateways – der Browser leitet automatisch zur Bestellbestätigungsseite weiter, sobald die Zahlung serverseitig bestätigt ist, unabhängig vom Gateway-eigenen Frontend-Polling.
1.3.5
Fix: Banner-Layout des Standort-Selektors reagiert nun korrekt auf Klicks (fehlende JavaScript-Initialisierung ergänzt).
Fix: Schaltfläche «Hier bestellen» im Banner-Layout ist nicht mehr unnötig breit.
Fix: Mail-Symbol im Kanban-Board (Beleg senden) funktioniert nun korrekt (Nonce-Fehler behoben).
Fix: Optimierter Checkout ruft woocommerce_after_checkout_form auf – TWINT-Popup öffnet sich wieder korrekt.
Feature: Dokumentation des Standort-Selektors um Banner-Layout und align-Parameter erweitert.
Übersetzungen: neue Strings für Standort-Dokumentation und Trinkgeld-Titel in allen Sprachen ergänzt.
1.3.4
Feature: Shortcode [lbite_location_selector] unterstützt neuen Parameter align=”left|center|right” für die horizontale Ausrichtung.
Fix: Deep-Link-Parameter ?lbite_location=ID wird nun korrekt verarbeitet und setzt die Session unabhängig vom Table-Ordering-Feature.
Fix: Standort-Auswahl-Shortcode erkennt jetzt den Parameter ?lbite_location=ID (zusätzlich zum bisherigen ?location=ID).
Feature: QR-Code-Metabox bei Standorten erlaubt neu die Vorauswahl des Bestelltyps (Sofort / Vorbestellen).
Docs: Hilfedokumentation zu URL-Parametern aktualisiert; korrekter Parameter ?lbite_location=ID.
1.3.2
Fix: CSS box-sizing and height overrides for date/time input fields (theme compatibility).
Fix: Branding color variables now fully applied across all CSS files; new –lbite-color-primary-bg variable.
Fix: Reservation AJAX handlers now check if the reservations feature is enabled.
Fix: POS order creation now clears the order badge transient immediately.
Fix: Hardcoded German strings in pos.js and dashboard.js replaced with localizable variables.
Fix: Name input field contrast in optimized checkout (white on white background).
Fix: WooCommerce login toggle now appears in optimized checkout for guests.
Fix: External payment providers (TWINT, Stripe etc.) no longer receive a placeholder email; an email field appears when needed.
Fix: Receipt email button now shown for all guest orders on the thank-you page, regardless of payment method.
Fix: Admin receipt metabox shows an email input for POS/guest orders and allows resending.
Fix: Kanban receipt button added to every order card; supports orders without a stored email address.
Fix: Kanban future order filtering (lbite_show_future_orders) now works correctly; is_future calculated independently of feature flag; dimming controlled by futureDimmingEnabled.
Fix: Cancel button in Kanban board is now solid red with a white ✕; removed 🔪 emoji from “Start preparation” button.
Improvement: All features are now enabled by default on fresh installations.
1.3.1
Fix: Three premium asset files (checkout-tip.js, checkout-optimized-receipt.js, thankyou-optimized.css) were incorrectly included in the free version; added to @fs_premium_only.
Fix: Table Ordering settings section now shows a Pro badge and is disabled for free users.
Fix: Inline style attributes in templates now correctly use esc_attr() as per WordPress coding standards.
Fix: Corrected wrong help reference “Settings → Dashboard” to “Settings → Order Overview”.
Improvement: Timeslot calculation results are now cached (5 min transient) for future dates, improving checkout performance.
Improvement: Help section updated with documentation for two-window opening hours (F2), slot buffers (F5), dimmed future pre-orders (F7), and receipt email (F8/F9).
Improvement: [lbite_reservation_form] shortcode documented on the Documentation page (Pro).
Improvement: Completed German translations (de_CH/de_DE/de_AT) for all v1.3.0 feature strings.
1.3.0
Feature: Opening hours now support two time windows per day (e.g. lunch + dinner service).
Feature: Holidays management – define closures or custom hours per date, assignable to all or specific locations.
Feature (Pro): Slot buffers – configure the earliest first and latest last bookable time slot per day.
Feature (Pro): Future pre-orders are now dimmed and non-draggable in the Kanban board until within preparation window.
Feature (Pro): Optimized Checkout no longer asks for a receipt – print and email buttons now appear at the top of the thank-you page.
Feature (Pro): Admins can re-send the receipt email directly from the order detail page via a metabox button.
1.2.9
Fix: Optimized Checkout now shows a warning when the WooCommerce Checkout Block is used instead of the classic shortcode.
Improvement: Added a note to the Checkout settings and the Help section explaining that the optimized checkout requires the
shortcode.
1.2.8
Maintenance: Updated Freemius SDK to version 2.13.1.
1.2.7
Fix: HPOS compatibility – order meta now stored via HPOS API ($order->update_meta_data / $order->get_meta) instead of post meta functions.
Fix: Capability checks now use plugin-specific capabilities (lbite_use_pos, lbite_view_dashboard) instead of generic edit_posts.
Fix: Locations menu is now always visible – at least one location is required for POS and order overview.
Fix: Free plan is now limited to 1 published location; attempting to publish a second one keeps it as draft and shows an upgrade notice.
Fix: Removed orphaned onboarding assets and broken “Restart Setup” button in Help page.
Fix: All hardcoded German strings in dashboard.js and pos.js replaced with localizable strings via wp_localize_script.
Improvement: Alle Plugin-Strings auf Englisch umgestellt (WordPress i18n-Standard).
New: Schweizerdeutsche Übersetzung (de_CH) wird direkt mit dem Plugin ausgeliefert.
1.2.5
Fix: Zeitzonenfehler in Kanban-Sortierung und Auto-Statuswechsel behoben — strtotime() durch lbite_local_time_to_timestamp() ersetzt (class-order-dashboard.php, Zeilen 192–193 und 531).
Fix: Anzeigefehler «Zuletzt geändert» in Order-Meta-Box korrigiert — strtotime() auf current_time(‘mysql’)-Strings durch lbite_local_time_to_timestamp() ersetzt.
Fix: Heutige Bestellungen im Dashboard-Widget zählten bei abweichender Server/WordPress-Timezone falsch — strtotime(‘today’) durch timezone-bewusstes Mitternacht-Timestamp ersetzt.
Fix: DateTime::createFromFormat() in checkout-location-time.php ohne Timezone-Parameter — auf DateTimeImmutable::createFromFormat() mit wp_timezone() umgestellt.
Improvement: Produkt-Optionen im Warenkorb werden nun als ein gruppierter Eintrag «Optionen» angezeigt statt als separate «Option»-Zeilen pro Auswahl.
1.2.4
Fix: Zeitzonenfehler bei Checkout-Bestätigung, Kanban-Board und E-Mails behoben — lokale Zeit-Strings werden nun korrekt mit lbite_local_time_to_timestamp() in Unix-Timestamps umgewandelt statt mit strtotime() (Doppelkonvertierung).
Fix: Zeitzonenfehler bei POS-Bestellungen behoben (gleiche Ursache wie oben).
Fix: Uhrzeit-Auswahlfelder im Checkout: Text wurde auf iOS/Safari unten abgeschnitten — line-height und height: auto ergänzt.
1.2.3
Improvement: Capability-Dokumentation in class-roles.php erweitert — alle lbite_-Capabilities mit Inline-Kommentaren zur Funktion versehen.
Fix: @fs_premium_only-Header um Tischmodul und zugehörige Assets erweitert — /includes/modules/tables/, /templates/admin/table-plan.php, admin-tables.js, admin-table-plan.js, reservation-board.js, admin-tables.css, admin-table-plan.css, admin-reservation-board.css werden nun korrekt aus der von Freemius generierten Free Version entfernt.
1.2.1
Fix: Freemius-Deployment-Strategie korrigiert — Premium-Code korrekt mit @fs_premium_only-Header und is__premium_only()-Guards markiert, sodass die von Freemius generierte Free Version keinerlei Premium-Code enthält.
Fix: Inline – und -Tags in class-admin.php in bestehende enqueued Stylesheet- und Script-Dateien ausgelagert.
Fix: sanitize_admin_settings() implementiert — alle Felder werden nun mit den passenden WordPress-Sanitize-Funktionen bereinigt.
Fix: add_tip_fee() prüft nun explizit den WooCommerce-Nonce (woocommerce-process_checkout bzw. update-order-review) und extrahiert nur die benötigten $_POST-Felder statt den ganzen Array zu kopieren.
1.2.0
Feature: Reservierungs-Dashboard — neue Tagesansicht (Libre Bite → Reservierungsübersicht) mit Standort-Dropdown, Datums-Navigation, Status-Badge und Tisch-Zuweisung direkt auf der Karte.
Improvement: Aktualisierungsintervall für Reservierungsübersicht in den Einstellungen konfigurierbar (Standard: 60 Sekunden).
Improvement: Benachrichtigungs-Badge im Backend-Menü zeigt jetzt auf die neue Reservierungsübersicht.
Improvement: Gerätkompatibilität und Betriebsmodelle in der Plugin-Beschreibung dokumentiert.
1.1.9
Improvement: Plugin-Beschreibung auf Nutzen statt Features ausgerichtet (Kurzbeschreibung, Description, Why Libre Bite).
Improvement: SEO-Keywords für Schweizer Gastronomie eingebaut (Twint, QR-Code-Bestellung, 5-Rappen-Rundung, provisionsfrei).
Improvement: Tags auf WP.org optimiert.
1.1.8
Feature: Benachrichtigungs-Badge für ausstehende Reservierungen im Backend-Menü ergänzt.
1.1.7
Feature: Benachrichtigungs-Counter im Backend-Menü zeigt Anzahl eingehender Bestellungen an.
Feature: Drucken-Schaltfläche auf der Bestellbestätigung zum Ausdrucken oder als PDF speichern.
Verbesserung: «Bestellübersicht aktivieren» in die Karte «Bestellsystem» verschoben.
Verbesserung: «Hilfe & Support» im Dashboard-Schnellzugriff ergänzt.
1.1.6
Fix: PHP-Warning “Undefined property: WC_Order_Item_Fee::$total_tax” auf der Bestellbestätigungsseite behoben.
Fix: Zahlungsart wird auf der Bestellbestätigungsseite nun als eigene Box angezeigt (nicht mehr als unformatierter Text).
Fix: Vorbestellungen zeigen im Kanban-Board jetzt Datum und Uhrzeit an (nicht mehr nur die Uhrzeit).
Fix: Bestellungen im Kanban-Board werden nach Dringlichkeit sortiert (Sofort: Erstellungszeit, Vorbestellung: Abholzeit).
Fix: «Reservierungen» erscheint im Backend-Menü neu unter «Tischplan» statt ganz oben.
Fix: Reservierungsformular zeigt keine Tischauswahl mehr – Tischzuweisung erfolgt durch das Personal im Backend.
Fix: Sofort-Bestellungen werden blockiert, wenn der gewählte Standort aktuell geschlossen ist.
Fix: Status-Badge auf der Standort-Übersicht zeigt nun den korrekten Öffnungsstatus (robuster Zeitvergleich).
Fix: Nährwerttabelle auf der Produktdetailseite hat nun horizontales Innenabstand.
Improvement: «Produkt-Optionen» ist neu unter WooCommerce → Produkte eingetragen.
Improvement: Hilfe-Bereich um Tab und Inhalt für «Reservierungen» erweitert.
1.1.5
Performance: POS product data cached for 1 hour via transient, invalidated on product and location save.
Performance: Location colors cached via transient (lbite_location_colors), invalidated on location save.
Performance: Admin settings JS now loaded only on the settings page (not on all Libre Bite admin pages).
Improvement: Default dashboard refresh interval increased from 30s to 45s for new installations.
1.1.4
Feature: Visual floor plan — drag-and-drop canvas per location with shape/size controls and live table status (free, occupied, preparing, ready).
Feature: Table reservations — frontend form via shortcode [lbite_reservation_form], email notifications, and admin management view.
Feature: POS table selector shows live occupancy status (free/occupied) for each table.
Improvement: Floor plan link moved under Tables in admin menu.
Improvement: Order board popup links to Order Board instead of individual orders.
Improvement: Help section updated with floor plan documentation.
Fix: Tables without saved order meta are now correctly shown in the floor plan.
1.1.3
Feature: Location colors — color-coded highlight for location dropdowns in POS and Order Board.
Feature: POS blocks product area when no location is selected.
Feature: Seats per table — configurable seat count per table (preparation for reservations).
Feature: Bulk table creation — create multiple tables at once with prefix and numbering.
Feature: Location filter in table list.
Improvement: Help section updated with full table management documentation and location color info.
1.1.2
Improvement: Consolidated settings tabs – Checkout and Checkout Fields merged, Dashboard renamed to Order Board, Features tab shown first.
Improvement: Simplified user roles to two-tier system (administrator + staff), removed legacy role cleanup on migration.
Improvement: Rewrote help documentation to be feature-focused for new users.
Fix: Optimized checkout CSS layout overrides for theme compatibility (Astra and others).
Performance: Pagination in ajax_load_more_completed() switched to true DB pagination (instead of loading all orders and slicing).
Code: Removed redundant cron job registration from module constructors (cron setup only in activation hook).
1.0.7
Security: Added XSS escaping in dashboard.js (item.meta, error message when cancelling).
Security: Added XSS escaping in pos.js (variationName in product modal).
Fix: Corrected wrong capability name in class-product-options.php (manage_lbite_options → lbite_manage_options). Product options are now saved correctly.
Fix: Fixed typo in feature key in class-checkout.php (enable_tip → enable_tips). Tip JS is now loaded correctly for Pro users.
Fix: Status labels in class-order-dashboard.php made translatable via WordPress i18n (WordPress.org compliance).
1.0.6
Fix: Premium override only available in Pro version (WordPress.org compliance).
Fix: Nutritional info, allergens, and sound notifications correctly marked as Pro features.
Fix: Feature list in readme.txt adapted to Free/Pro assignment.
Fix: Plugin description translated to English (WordPress.org guideline).
Fix: Output escaping added to admin notices.
Bump: Version to 1.0.6.
1.0.5
Fix: Replaced Heredoc/Nowdoc syntax with external JS files (WPCS compliance).
1.0.4
Fix: Changed function prefix from lb_ to lbite_ (WordPress.org naming convention).
Fix: Moved inline CSS/JS from templates to separate enqueue files.
Fix: Added nonce checks in checkout and product options.
Fix: Added Freemius parameter is_org_compliant.
Fix: Updated SortableJS to version 1.15.7.
Fix: Corrected contributors field in readme.txt.
1.0.3
Fix: Resolved all WordPress.org Plugin Check errors and warnings.
Fix: Corrected direct file access protection in main plugin file.
Fix: Fixed output escaping in wp_die() calls.
Fix: Replaced strip_tags() with wp_strip_all_tags().
Fix: Added PHPCS ignore comments for legitimate uses.
Fix: Reduced tags in readme.txt to maximum 5.
1.0.2
Fix: Resolved WordPress.org Plugin Check errors (Tested up to tag, text domain loading).
Fix: Removed Domain Path header.
1.0.1
Improved: Freemius integration for better WordPress.org compliance.
Fixed: Uninstallation process adapted for feedback tracking.
Security: Improved security checks and escaping.
1.0.0-beta
First beta version.
Added: Location management module.
Added: Point of Sale (POS).
Added: Kanban order board.
Added: Tipping system and scheduled order time slots.