Title: Libre Bite – Restaurant POS, Kitchen Display (KDS) &amp; QR Ordering for WooCommerce
Author: Pulacha Labs
Published: <strong>Ebrel 13, 2026</strong>
Last modified: Gwengolo 29, 2026

---

Search plugins

![](https://ps.w.org/libre-bite/assets/banner-772x250.png?rev=3719730)

![](https://ps.w.org/libre-bite/assets/icon-256x256.png?rev=3505510)

# Libre Bite – Restaurant POS, Kitchen Display (KDS) & QR Ordering for WooCommerce

 By [Pulacha Labs](https://profiles.wordpress.org/simon61/)

[Download](https://downloads.wordpress.org/plugin/libre-bite.3.6.16.zip)

 * [Details](https://bre.wordpress.org/plugins/libre-bite/#description)
 * [Reviews](https://bre.wordpress.org/plugins/libre-bite/#reviews)
 *  [Installation](https://bre.wordpress.org/plugins/libre-bite/#installation)
 * [Development](https://bre.wordpress.org/plugins/libre-bite/#developers)

 [Support](https://wordpress.org/support/plugin/libre-bite/)

## Description

**More orders, less stress — Libre Bite turns WooCommerce into your restaurant’s
operational backbone.** No commission fees, no SaaS lock-in: your guests order online
or at the table via QR code, pay with card, cash, or Twint, and your kitchen sees
every order live on the board — all inside WordPress.

**Start for free. Upgrade only when you need more.**

#### Free to Start

All core features are available completely free of charge — no credit card, no trial
period, no hidden limits.

A Pro subscription is only required for advanced features such as multi-location
management, table ordering, optimised checkout, tipping, and pickup reminders. Pro
plans are priced to be affordable — significantly cheaper than dedicated restaurant
SaaS platforms.

**7-day free Pro trial — no payment required.**

#### Built on WordPress & WooCommerce

Libre Bite is a WordPress plugin. It extends WooCommerce — the proven e-commerce
foundation used by millions of sites worldwide.

 * **No new platform to learn** — manage everything inside your existing WordPress
   dashboard.
 * **Your products stay WooCommerce products** — set them up once and they appear
   in the POS, checkout, and online shop automatically.
 * **Use any WooCommerce-compatible payment gateway** — cash, card, Twint, Stripe,
   PayPal, or any other gateway you already have. Libre Bite charges **no transaction
   fees**.
 * **Offline payments supported** — “Pay at pickup”, “Pay at table”, or any custom
   payment method via standard WooCommerce.

#### For Whom Is Libre Bite?

Libre Bite is built for **small and micro gastronomy businesses** — operations that
want serious software without enterprise-level costs or delivery platform commissions.

 * **Restaurants** — Take dine-in and take-away orders, keep the kitchen informed,
   delight guests with smooth service.
 * **Take-Away & Fast Food** — Serve walk-ins fast with an integrated counter POS,
   accept card and Twint payments, no third-party fees.
 * **Cafés & Bars** — Handle product extras, tips, and order flow without juggling
   multiple tools.
 * **Multi-location businesses** — Run all branches from one WordPress installation,
   each with its own order board and POS (Pro).

#### Modular by Design

Only activate the features your business actually needs. Unused modules stay hidden—
no cluttered menus, no unnecessary complexity.

#### Core Features (Free)

**Live Kanban Order Board (KDS)**
 A real-time kitchen display that visualizes every
incoming WooCommerce order as a card. Move an order through Pre-orders  Prepare 
Now  Completed with a single click — without reloading the page. Renaming, adding,
or reordering columns, and dragging cards between them, is available as a Pro add-
on.

**Integrated Point of Sale (POS)**
 A clear POS interface for walk-in customers.
Add products to the order, accept payments — all without leaving WordPress.

**Location Management**
 Create and manage branches, each with its own address, 
opening hours, and order routing. Works immediately for single-location businesses.

**Swiss 5-Cent Rounding**
 Built-in support for the Swiss rounding rule (5-cent 
rounding). Indispensable for restaurants and retail in Switzerland.

**Pickup Time Slots**
 Customers choose a time slot for pickup directly during checkout.
Relieve peak hours and better manage kitchen capacity.

**Product Options**
 Add configurable options to any WooCommerce product — sizes,
sauces, toppings, preparation notes — with optional price markups.

**Modular Feature Control**
 Only enable what your business really needs. Each module
can be independently toggled on or off in the admin area.

**WooCommerce HPOS Compatible**
 Fully tested with WooCommerce High-Performance 
Order Storage (HPOS). Safe for modern, high-traffic setups.

**Sound Notifications**
 A browser signal tone when a new order arrives on the Kanban
board, so the kitchen doesn’t have to watch the screen. Uploading your own custom
sound file via the media library is a Pro feature.

#### Pro Features (Subscription required)

**Reservations**
 A guided 3-step booking form for guests — date & party size, contact
details, confirmation. Reservations land on their own dashboard, get auto-released
or manually confirmed, and can be assigned to a specific table.

**Table Ordering (QR Code)**
 Generate a QR code for each table. Guests scan it 
and order directly — no address or pickup time fields required. Orders appear in
the dashboard with the table name.

**Multi-Location Management**
 Manage an unlimited number of branches. Each location
gets its own Kanban board, POS configuration, and separate order flow — managed 
centrally via one WordPress installation.

**Optimized Checkout Flow**
 A conversion-focused checkout process for gastronomy
businesses — fewer steps, cleaner layout, mobile-first.

**Advanced Tipping System**
 Customers can select percentage tip suggestions (e.
g., 5%, 10%, 15%) or enter a custom amount. Tip amounts are saved per order and 
broken out separately in the statistics.

**Automatic Pickup Reminders**
 Automatic email reminders to customers X minutes
before the scheduled pickup time. Fewer no-shows, better pickup experience.

**Nutritional Info & Allergen Labeling**
 Nutritional values and allergen declarations
for every product, displayed clearly on the product page. Includes a printable allergen
matrix covering the 14 EU-listed allergens, to help you meet allergen labeling requirements.

**Promotions & Announcements**
 Rule-based offers WooCommerce does not know by itself:
buy several pay for fewer, a discount on a category, money off above a cart value—
each limited to certain weekdays or times. Plus an announcement bar.

**Stamp Card**
 One stamp per completed order, then a discount voucher. Guests grasp“
every tenth order is cheaper” immediately.

**Theme-independent Menu View**
 Output your menu in its own layout — category navigation,
product cards, a dialog for variations and add-ons, and a slide-in order panel. 
Works with any theme, no template editing required.

**Dietary Labels & Filter**
 Label dishes as vegan, vegetarian, gluten-free and 
more. Guests filter the menu without reloading the page.

**Scheduled Availability**
 Limit products or whole categories to certain weekdays,
times of day or date ranges. A breakfast menu that disappears at 11:30, a seasonal
item that only shows in December.

**Order Bumps**
 Offer matching extras right above the pay button. Added as real
line items, so they appear on the kitchen ticket and count in the statistics.

**Time Slot Capacity**
 Cap how many orders each time slot accepts, so the kitchen
is not flooded at peak times.

**Guest Notes**
 Keep allergies and preferences on the customer account and show
them to staff when a returning guest reserves a table.

**SMS Notifications**
 Send a short text message when an order is ready. Uses your
own Twilio account — no order or customer data passes through us.

**Customizable Kanban Columns**
 Rename, add, remove and reorder the columns of 
the Kanban order board to match your own workflow — mark any number of columns as“
completed”, add a one-step back button per order card, and optionally enable drag&
drop between columns (Pro).

#### Why Libre Bite?

Delivery platforms take up to 30% commission. Dedicated restaurant SaaS tools charge
monthly fees on top of that. Libre Bite is different: own your ordering system, 
pay no commissions, and keep every franc.

 * **Commission-free ordering** — guests order directly on your website, no platform
   cut
 * **No transaction fees** — ever
 * **No order limits, no quotas** — take as many orders and reservations as you 
   want, in every plan
 * **No usage tracking** — your orders and reservations are never counted, hashed,
   or reported to any external server
 * **Twint, card, cash** — accept any payment WooCommerce supports
 * **Swiss 5-cent rounding built in** — essential for CHF cash payments
 * **Separate VAT rates for takeaway and dine-in** — handled correctly, not bolted
   on (Pro)
 * **QR code ordering at the table** — guests scan, choose, and pay in seconds (
   Pro)
 * **Split payments and open tabs** — settle one bill across several payment methods,
   or keep a table running (Pro)
 * **Multiple locations from one installation** — each branch with its own board,
   POS, and order flow (Pro)
 * **Modular** — activate only what your business needs, nothing else
 * **Your data stays yours** — in your own WordPress installation
 * **Affordable Pro plans** — designed for small businesses, not enterprise budgets
 * **7-day free Pro trial** — no payment required

#### Works on Any Device

Libre Bite works on any device — no app installation required. Use it with a mouse
and keyboard on a desktop or laptop, or with touch input on a tablet. The Kanban
order board, POS interface, and reservation dashboard are optimised for touch-first
operation, making them well-suited for use on a tablet mounted at the counter or
kitchen pass.

#### How to Run Libre Bite

**Option 1 — Extend your existing website**
 Install Libre Bite directly into your
existing WordPress/WooCommerce site. Any theme is compatible — no design changes
required.

**Option 2 — Standalone installation (subdomain)**
 Run Libre Bite as a dedicated
installation on a subdomain, such as `order.myrestaurant.com` — completely independent
from your main website, purpose-built for your gastronomy operation.

**Option 3 — Managed hosting by Libre Bite**
 Libre Bite handles the complete setup:
installation, configuration, hosting, and ongoing maintenance — from A to Z. Available
as a paid service. Get in touch via https://pulacha-labs.ch/

#### External Services

This plugin uses **Freemius**, a third-party platform for managing licenses, subscriptions,
and plugin updates for the Pro version.

During plugin activation, you can opt-in to data sharing with Freemius. Basic information
about your website (WordPress version, PHP version, active plugins) is transmitted
to Freemius to enable license validation and usage analysis. **Opt-in is completely
optional.** All free core features work without opt-in.

 * Freemius Privacy Policy: https://freemius.com/privacy/
 * Freemius Terms of Service: https://freemius.com/terms/

No data is sent to Freemius if you skip or decline the opt-in during activation.

Libre Bite uses the **goQR.me API** (https://goqr.me/api/) to render QR code images
in the WordPress admin area. This happens in two places: the location editor, which
generates a QR code linking to your menu for a specific location (free feature),
and the table editor, which generates a QR code for table ordering (Pro feature).

Only the encoded target URL of your own website is transmitted, so that the service
can render the matching image. No personal data, customer data, or order data is
sent. The request is only made while an administrator has the corresponding editor
screen open — never during a customer order or on any public page.

 * goQR.me API: https://goqr.me/api/
 * goQR.me Privacy Policy: https://goqr.me/privacy-policy/

If you enable the optional SMS Notifications feature (Pro), Libre Bite sends the
customer’s phone number and a short status message to **Twilio** (https://www.twilio.
com/) using your own Twilio account, so Twilio can deliver the text message. This
only happens when the SMS feature is switched on and an order reaches the status
you configured as the trigger — it never runs otherwise. You provide and control
your own Twilio credentials; no order or customer data passes through Libre Bite’s
own servers.

 * Twilio Privacy Policy: https://www.twilio.com/en-us/legal/privacy
 * Twilio Terms of Service: https://www.twilio.com/en-us/legal/tos

## Screenshots

[⌊Kanban Order Board — Real-time order management for kitchen staff. Update order
status with a click as orders move through the board.⌉⌊Kanban Order Board — Real-
time order management for kitchen staff. Update order status with a click as orders
move through the board.⌉[

**Kanban Order Board** — Real-time order management for kitchen staff. Update order
status with a click as orders move through the board.

[⌊POS Interface — Integrated Point of Sale for walk-in customers and counter orders.⌉⌊
POS Interface — Integrated Point of Sale for walk-in customers and counter orders
.⌉[

**POS Interface** — Integrated Point of Sale for walk-in customers and counter orders.

[⌊Theme-independent Menu View — Category navigation, product cards, and a popup 
for variations and add-ons, rendered without touching your theme (Pro).⌉⌊Theme-independent
Menu View — Category navigation, product cards, and a popup for variations and add-
ons, rendered without touching your theme (Pro).⌉[

**Theme-independent Menu View** — Category navigation, product cards, and a popup
for variations and add-ons, rendered without touching your theme (Pro).

[⌊Module Settings — Toggle individual features on or off depending on business needs.⌉⌊
Module Settings — Toggle individual features on or off depending on business needs
.⌉[

**Module Settings** — Toggle individual features on or off depending on business
needs.

## Installation

 1. Upload the plugin folder to the `/wp-content/plugins/libre-bite` directory, or 
    install the plugin through the WordPress plugins screen directly.
 2. Activate the plugin through the **Plugins** screen in WordPress.
 3. Make sure **WooCommerce** is installed and active — Libre Bite requires WooCommerce.
 4. Follow the setup assistant — it checks your environment, lets you pick the modules
    you need, and can create a sample menu so you are not starting from an empty shop.
 5. Alternatively, navigate to **Libre Bite** in the admin menu to configure locations,
    enable modules, and set up the POS and Kanban board.

## FAQ

### Is WooCommerce mandatory?

Yes. Libre Bite is a WooCommerce extension. WooCommerce must be installed and active
for Libre Bite to work. WooCommerce 8.0 or later is recommended.

### Which payment methods are supported?

Libre Bite uses WooCommerce’s standard payment system. Any WooCommerce-compatible
payment gateway works — including Stripe, PayPal, Twint, cash on pickup, card at
counter, and more. Libre Bite charges **no transaction fees**. You pay only for 
your payment gateway (if any) and the optional Pro subscription.

### Can customers pay in cash or at the counter?

Yes. WooCommerce includes offline payment methods such as “Cash on Delivery” or “
Pay in Person”. You can rename and configure these freely — for example “Pay at 
pickup” or “Pay at the counter”.

### Is the plugin compatible with WooCommerce HPOS?

Yes. Libre Bite is fully compatible with WooCommerce High-Performance Order Storage(
HPOS). It has been tested with both legacy post-based storage and the new Custom
Order Tables.

### Does Libre Bite work with the WooCommerce Checkout block?

Not yet. Libre Bite’s location selection, time slots, order bumps, and tip settings
currently rely on the classic WooCommerce checkout. If your checkout page uses the
Checkout block, edit that page, select the Checkout block, and use its sidebar option
to switch back to the classic shortcode (or replace it with a Shortcode block containing`[
woocommerce_checkout]`). Libre Bite shows an admin notice with the same instructions
whenever it detects the block on your checkout page. Official Checkout block support
is on the roadmap.

### Can I manage multiple restaurant locations?

Multi-location management is included in the Pro version. The free version supports
a single location with full configuration of address, opening hours, and order routing.

### What is Swiss 5-Cent Rounding?

In Switzerland, cash payments are rounded to the nearest 5 cents as 1- and 2-cent
coins are no longer in circulation. Libre Bite applies this rounding rule at checkout,
switched on by default for shops using CHF and off by default for any other currency—
either way, it’s a single toggle in Settings.

### Does the POS system work offline?

The integrated POS system requires an active WordPress/WooCommerce session and an
internet connection. It is a browser-based interface that currently does not support
offline mode.

### Are there any order or reservation limits?

No. Libre Bite never limits how many orders, reservations, or locations you can 
handle — not in the free version and not in any Pro plan. Your order volume is never
counted, transmitted, or validated against an external server, so your ordering 
system keeps working even if our servers do not.

### Does Libre Bite share my data with third parties?

Libre Bite uses Freemius for license management and delivery of Pro features. Data
is only transmitted to Freemius if you explicitly opt-in during activation. No order,
customer, or product data is transmitted — only basic website environment information(
PHP version, WP version, plugin list). For more details, see the Freemius Privacy
Policy: https://freemius.com/privacy/

### What are the minimum requirements?

 * WordPress 6.0 or higher
 * WooCommerce 8.0 or higher
 * PHP 8.1 or higher (PHP 8.2+ recommended)
 * A modern browser for Kanban board and POS interface

### Is Libre Bite available in multiple languages?

Yes. English is the source language, and the plugin ships with complete translations
for Swiss, German and Austrian German (de_CH, de_DE, de_AT, plus the formal and 
informal variants), Swiss French (fr_CH) and Swiss Italian (it_CH). Every string
is covered. Other languages can be added from the bundled .pot file or through community
translations on translate.wordpress.org.

## Reviews

![](https://secure.gravatar.com/avatar/998d9fdfd1271af40f0c66d1f5b7703b958886bf4ea1a1f7077952683c0f8648?
s=60&d=retro&r=g)

### 󠀁[Top!](https://wordpress.org/support/topic/top-1805/)󠁿

 [Simsim](https://profiles.wordpress.org/simurech/) Mae 20, 2026

Funktioniert super!

 [ Read all 1 review ](https://wordpress.org/support/plugin/libre-bite/reviews/)

## Contributors & Developers

“Libre Bite – Restaurant POS, Kitchen Display (KDS) & QR Ordering for WooCommerce”
is open source software. The following people have contributed to this plugin.

Contributors

 *   [ Pulacha Labs ](https://profiles.wordpress.org/simon61/)

[Translate “Libre Bite – Restaurant POS, Kitchen Display (KDS) & QR Ordering for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/libre-bite)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/libre-bite/), check
out the [SVN repository](https://plugins.svn.wordpress.org/libre-bite/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/libre-bite/) by 
[RSS](https://plugins.trac.wordpress.org/log/libre-bite/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.6.16

 * Changed: Updated readme, GitHub description and WordPress.org listing assets (
   banner, screenshots). No functional changes.

#### 3.6.15

 * Fix: In the theme-independent menu view, opening a product’s detail popup could
   hide the “Add” button below the visible screen area on longer content (description
   plus several variants or options) until scrolling all the way down. The button
   now stays fixed at the bottom of the popup while its content scrolls.

#### 3.6.14

 * Fix: On the checkout page, clicking “Change” on the location/order type summary
   made the edit form appear below “How would you like your order?” instead of in
   the same place as the summary it replaced, and it jumped back to its usual position
   after saving – confusing since the layout order changed depending on state. The
   edit form now always sits in the same place.
 * Fix: The location photo on the checkout page didn’t match the one shown in the
   location picker – both use the same uploaded image, but the checkout page requested
   WordPress’ hard-cropped “thumbnail” size instead of a proportional one, making
   it look like a different picture.

#### 3.6.13

 * Feature: The sticky category bar in the theme-independent menu view now highlights
   the currently visible section while scrolling, as if you had clicked it, and 
   keeps that entry scrolled into view within the bar.
 * Fix: A product card without an image showed its text aligned to the top instead
   of matching the height of cards with an image. All cards in the grid now reserve
   the same image slot, shown as a plain placeholder when a product has no photo.
 * Feature: New “Product Images” setting under Settings  Products  Menu Display 
   lets you turn off images in the menu grid entirely, for a text-only menu.

#### 3.6.12

 * Fix: Clicking a category in the theme-independent menu view’s sticky navigation
   scrolled to a position where the section title and its first row of products 
   were hidden behind the sticky bar. The scroll offset is now calculated from the
   bar’s actual height instead of a fixed number.
 * Fix: The theme-independent menu view was capped at 1100px wide, narrower than
   the surrounding page content on many themes. It now fills its container like 
   the rest of the page.

#### 3.6.11

 * Fix: Adding a product with variations to the cart from the theme-independent 
   menu view’s popup still failed with “please choose an option” after the previous
   fix. Root cause found and verified directly against WooCommerce core: its add-
   to-cart endpoint never reads a separately submitted variation ID or attribute
   fields at all – it only checks whether the submitted product ID is itself a variation
   post, and resolves everything else from that. The popup now submits the variation’s
   own ID instead of the parent product’s ID together with separate fields.
 * Fix: The sticky category bar in the theme-independent menu view now keeps a 16px
   gap from the top of the window while docked, matching its left/right spacing.

#### 3.6.10

 * Fix: Adding a product with variations to the cart from the theme-independent 
   menu view’s popup still failed with “please choose an option” – WooCommerce’s
   add-to-cart endpoint needs the variation ID sent explicitly, it does not reliably
   resolve it from the selected attributes on its own.
 * Fix: The selected variation’s name stayed in dark text instead of turning white
   together with the price and the button background.
 * Fix: The availability hint’s icon showed as stray lines instead of the usual 
   circled “i”, since a generic style rule overrode the icon font.
 * Fix: Clicking “Change location” in the menu view only revealed the dropdown, 
   still showing the previously chosen location – a second click was needed before
   anything visibly changed. It now also shows the “Choose a location” text and 
   resets the dropdown to its placeholder, matching the standard shop pages.
 * Fix: The “Continue shopping” button in the slide-in cart was slightly taller 
   than “Go to checkout” due to the browser’s default button sizing; both are the
   same height now.
 * Fix: The modal’s close button showed a stray blue focus ring on hover.
 * Feature: The mobile thumbnail in the menu view is about 30% larger.
 * Feature: The Options/Add-ons section in the product popup now has a heading, 
   matching the Variations section.

#### 3.6.9

 * Feature: New “Back Button” setting under Settings  Orders  Columns lets you turn
   off the one-step-back button on Kanban cards, for kitchens that don’t need it.
 * Feature: New “Cancelling Orders” setting lets you block cancelling orders from
   the Kanban board entirely, e.g. when kitchen staff shouldn’t have that permission.
   Also enforced on the server, not just hidden in the interface.

#### 3.6.8

 * Fix: The location filter bar on standard shop pages and the location step in 
   the reservation form still appeared even with “Location Selection” turned off;
   both now respect that setting and fall back to the configured Default Location.
 * Fix: The availability hint/tooltip in the theme-independent menu view showed 
   the wrong icon colors, since a generic style rule overrode them.
 * Fix: After clicking “Change location” in the theme-independent menu view, the“
   Show only available products” button incorrectly stayed visible instead of hiding
   along with the rest of the chosen-location controls.
 * Fix: The small mobile thumbnail in the theme-independent menu view had all four
   corners rounded; the two corners that should run flush to the card edge are square
   again.
 * Feature: The slide-in cart in the theme-independent menu view now has a “Continue
   shopping” button to close it and add more items without going to checkout.

#### 3.6.7

 * Feature: The theme-independent menu view now matches the standard shop pages:
   products excluded at the chosen location stay visible with the same availability
   hint/tooltip instead of disappearing entirely, and a “Show only available products”
   toggle appears once a location is chosen.
 * Fix: The location banner in the theme-independent menu view showed the chosen
   location’s name twice (once as text, once as the still-visible dropdown’s selected
   option); it now switches to a “Change location” link once a location is chosen,
   matching the standard shop pages.

#### 3.6.6

 * Fix: The small mobile thumbnail in the theme-independent menu view stretched 
   to the full card height instead of staying a compact square, and had square corners.

#### 3.6.5

 * Fix: The floating “Your order” button and the “Go to checkout” button in the 
   theme-independent menu view’s slide-in cart had no hover color, or briefly flashed
   an unrelated blue instead of the brand color.
 * Fix: The Branding settings page previewed the Accent Color as the background 
   of an “Order Now” button, which was misleading – that button actually uses the
   Primary Color. The Accent Color’s description now explains its real, narrow use(
   success icon and discount amount on the optimized checkout’s confirmation page,
   a Pro feature).
 * Fix: On standard WooCommerce/theme pages, the location filter bar and the dietary
   filter bar looked visually inconsistent; the location filter now uses the same
   rounded pill style.
 * Fix: Same inconsistency in the theme-independent menu view: the location switcher’s
   dropdown now matches the dietary filter’s pill style.
 * Feature: The sticky category bar in the theme-independent menu view now uses 
   the brand’s primary color as background with light pill buttons, so it stands
   out more while scrolling.
 * Feature: When a dietary filter leaves a category with no matching products in
   the theme-independent menu view, that category now shows a short explanatory 
   message instead of an empty gap under its title.

#### 3.6.4

 * Fix: Buttons using the chosen brand color as background kept white text everywhere
   except the theme-independent menu view and the announcement banner, which already
   computed readable text automatically; with a light brand color this made checkout,
   thank-you page, location picker and reservation form buttons unreadable. All 
   of them now use the same automatic light/dark text logic.
 * Fix: The reservation form and the stamp card never received the chosen brand 
   color at all and always fell back to the default blue, regardless of the Branding
   settings.
 * Fix: A PHP 8.1+ deprecation notice fired on every checkout page load while no
   pickup time was selected yet.

#### 3.6.3

 * Fix: In the theme-independent menu view’s popup, variation prices without their
   own currency symbol (e.g. CHF) showed as raw HTML entities instead of the actual
   text.
 * Fix: Adding a product with variations to the cart from the menu view’s popup 
   always failed with “please choose an option”, even after selecting a size – the
   field name sent to WooCommerce could mismatch for attribute names with special
   characters.
 * Fix: The sticky category bar in the menu view had no horizontal spacing, so the
   buttons touched its edges directly.
 * Feature: On narrow screens, the menu view now shows a small thumbnail to the 
   right of the text instead of a full-width photo above it, matching common food-
   delivery app layouts.
 * Feature: The Notifications settings tab now links directly to WooCommerce’s own
   email settings screen for the pickup reminder email, where its sender, subject,
   heading and message text are configured.

#### 3.6.2

 * Fix: In the theme-independent menu view ([lbite_menu]), the dietary filter appeared
   above the sticky category bar instead of below it.
 * Fix: The sticky category bar in the menu view had no visible edge once docked
   at the top while scrolling, blending into the content behind it.
 * Fix: Products with variations (e.g. sizes) showed a plain dropdown without prices
   in the menu view’s popup, plus an unnecessary quantity field; replaced with buttons
   showing the price for each option, and removed the quantity field everywhere 
   in the popup (one click now always adds one item).
 * Fix: The menu view showed a price range for products with variations instead 
   of the lowest price; now shows “From [price]” when prices differ, or a single
   price when they don’t.
 * Fix: Product photos in the menu view’s grid, list, and popup were cropped at 
   a wide aspect ratio that didn’t match square uploads; switched to a square crop
   throughout.

#### 3.6.1

 * Fix: Branding colors did not reach the announcement banner, since it renders 
   independently of the other frontend shortcodes; also added a readable text color
   for very light brand colors.
 * Fix: Reservation statuses (Pending/Confirmed/Cancelled/Completed) were hardcoded
   in English and never translatable.
 * Feature: New “Redirect Standard Archives to Menu” setting – sends the default
   WooCommerce shop, category and tag pages to your configured menu page instead
   of leaving duplicate content.
 * Feature: New WordPress dashboard widget showing today’s order count and revenue
   per location, plus the average time from “preparing” to “completed” over the 
   last 7 days.
 * Fix: On pages using WooCommerce’s own [products] shortcode without pagination,
   the dietary and location filter bars never appeared, and the availability hint
   showed as unstyled full content instead of a compact popup.
 * Feature: The theme-independent menu view ([lbite_menu]) now has a dietary filter
   bar, a location switcher, and a subtle “View product details” link on each item–
   none of these existed there before.
 * Fix: The floating “Your order” button in the menu view had unreadable text, since
   a generic style rule overrode the button’s own text color.
 * Fix: The dietary filter’s reset button in the menu view kept the browser’s native
   button styling and looked broken; the section navigation also stayed visually
   highlighted after a click even though it only scrolls the page.
 * Fix: The dietary and location filter bars on the shop page were narrower than
   the rest of the page content.
 * Feature: Dietary Labels and Dietary Filter are now two independent settings, 
   so a shop can show labels without the filter bar or the other way around. Existing
   installs keep their current behavior automatically.
 * Feature: The stamp card now has its own tab in My Account, next to Dashboard 
   and Orders, instead of appearing inside the Dashboard tab.
 * Feature: The statistics page and its dashboard widget now also show average order
   preparation time, overall and per location.

#### 3.6.0

 * Fix: Adding an item in the theme-independent menu view showed the theme’s own“
   View cart” link next to the button, shifting the product grid; the slide-in cart
   now opens automatically instead.
 * Fix: Branding colors could fail to reach the menu view, the reservation form,
   and the stamp card, since only pages using the location selector shortcode received
   them; broadened to all Libre Bite frontend shortcodes and unified with the admin/
   POS color logic (previously two separate implementations).
 * Feature: Text on branded buttons (e.g. the floating “Your order” button) now 
   automatically switches between light and dark to stay readable against the chosen
   brand color.
 * Feature: New “Default Location” setting under Settings  Locations, used whenever
   a guest cannot pick a location themselves – most importantly when “Location Selection”
   is turned off. Orders, the add-to-cart location check, and the `[lbite_location_selector]`
   shortcode all fall back to it instead of leaving the order without a location.
 * Fix: With “Location Selection” turned off, the location selector shortcode kept
   showing the full picker instead of respecting the setting, and could show a raw
   browser error if a guest still interacted with it.
 * Fix: A location without configured opening hours was treated as always closed
   for pre-orders and reservations (and as “unknown” for the live status badge) 
   instead of open 24/7; unified across checkout, the status badge, and reservations.
 * Feature: The reservation form now checks opening hours as soon as a date/time
   is chosen, instead of only rejecting it after all three steps are filled in.

#### 3.5.5

 * Fix: The 3.5.4 fix for the two Plugin Check errors was incomplete (escaping was
   applied at variable assignment instead of at the point of output); corrected 
   and verified against the official Plugin Check tool directly, not just by re-
   reading the code.

#### 3.5.4

 * Fix: Two WordPress Plugin Check errors (missing translators comment in the setup
   wizard’s stamp card preview; an unescaped variable in the stamp card frontend
   display) that were failing the automated code-quality check.

#### 3.5.3

 * Fix: Currency symbols without a dedicated Unicode character (e.g. CHF) appeared
   as literal HTML entity codes instead of the actual symbol in the Setup Wizard
   tip preview, the Checkout Tips settings preview, the POS cart/payment screen,
   and the Product Options price label.

#### 3.5.2

 * Fix: On the Kanban order board, the order info text in the card footer could 
   be squeezed out of view by the action buttons.

#### 3.5.1

 * Fixed: the two background tasks (pickup reminders, pre-order status changes) 
   ran every minute on every installation, even on shops that never use pre-orders
   or reminders; they’re now only scheduled while the relevant feature is actually
   on, and the custom schedule interval was renamed to avoid colliding with another
   plugin’s identically-named one.
 * Fixed: the pickup-reminder and pre-order background checks could have a backlog
   of old, already-handled orders crowd out the ones that actually need attention
   right now, since older entries weren’t filtered out or prioritized. They’re now
   scoped to the relevant time window and processed soonest-first.
 * Fixed: three read-only endpoints (time slots, opening days, location status) 
   required a security token that had a limited lifetime; if a page-caching plugin
   or CDN served a cached copy of the page for longer than that, checkout would 
   silently stop working until the visitor reloaded. These endpoints only return
   public information, so the token requirement was removed.
 * Fixed: the guest-notes phone lookup used a database search pattern that can’t
   use an index and gets slower as the customer list grows; it now compares a pre-
   normalized number directly instead.
 * Fixed: the POS product cache used a direct database delete to clear itself, which
   does nothing on sites using a Redis/Memcached object cache — stale product data
   could persist there indefinitely after a change. It also didn’t clear when stock
   levels changed automatically. Both are fixed with a version-counter approach 
   that works with any caching setup.
 * Fixed: the till’s coupon picker could be crowded out by personal, single-use 
   reward coupons (e.g. from the stamp card) or already fully-used coupons, hiding
   real promotional codes on shops with many loyalty rewards.
 * Fixed: reservation card details (name, phone, notes, guest allergies) were escaped
   twice, so an apostrophe or ampersand in a reservation showed up as a literal 
   HTML code instead of the actual character.
 * Fixed: a translation-loading order bug meant this plugin’s own included translations
   always overrode community translations from wordpress.org for any string both
   contained, rather than the other way around as intended.
 * Fixed: a public-facing checkout endpoint compared a security value using a plain
   string comparison, which is more vulnerable to timing-based attacks than the 
   constant-time comparison already used by a nearly-identical endpoint elsewhere
   in the plugin.
 * Changed: several inline `<script>`/`<style>` blocks are now delivered through
   WordPress’s script/style system instead of being printed directly, and two CSS
   rules no longer depend on a WooCommerce stylesheet handle that some themes remove.
 * Changed: the Kanban board, reservation board and table plan now pause their background
   refresh while their browser tab isn’t visible, resuming immediately when it becomes
   visible again.
 * Removed: an activation step that set up a database table system this plugin has
   never actually used.

#### 3.5.0

 * Fixed: the default POS payment method names (“Cash”, “Card”, “Other”) were stored
   in German at installation time, which permanently overrode the translation on
   every site regardless of its language. Existing installs are migrated automatically;
   new installs and any site that never customized these labels now show them in
   the site’s own language.
 * Fixed: several hard-coded German or English-only strings (“Loading…”, a stamp-
   card preview sentence, an order-created message, a “no configuration needed” 
   message) now go through the normal translation system.
 * Fixed: Du/Sie address was inconsistent across the German translations — the informal
   variants (Standard German, informal Swiss German) contained around 90 formal “
   Sie” strings each, and the formal variants contained a couple of stray informal“
   du” strings. Both are now consistent within each variant.
 * Added: a one-time redirect to the setup assistant right after the plugin’s first
   activation (skipped for bulk/network activation and WP-CLI), plus a persistent
   reminder on the dashboard and settings page for as long as setup hasn’t been 
   completed.
 * Added: dashboard notices for the states that would otherwise silently prevent
   any order from completing — no location created yet, no POS payment method enabled,
   or the checkout page using the WooCommerce Checkout block.
 * Fixed: importing the sample content while already at the Free plan’s one-location
   limit created a second location that was silently saved as a draft; this is now
   reported clearly instead of looking like nothing happened.
 * Fixed: the setup assistant’s “WooCommerce is active” system check could never
   actually fail (the plugin doesn’t load at all without an active, current-enough
   WooCommerce), so it only added noise — removed. Its “Continue” button had also
   been permanently disabled by a leftover reference to that check.
 * Fixed: a “Dim Future Pre-orders” setting that could never take effect due to 
   an unrelated internal flag with no way to enable it — even paying customers who
   turned the checkbox on saw no effect. The Kanban board’s sound-notification default
   was also never read from its own setting, always defaulting to on regardless 
   of what was configured.
 * Removed: three dead/unreachable code paths found during an audit — an unused 
   settings-registration call, an AJAX endpoint with no caller anywhere in the plugin,
   and a duplicate reservation-tables AJAX endpoint that was never wired to the 
   frontend.
 * Changed: the previously unreachable Debug Information page is now available under
   Settings  Developer.

#### 3.4.9

 * Changed: several readme descriptions no longer matched the current plugin — the
   Kanban board description and screenshot named drag & drop and column names that
   are actually a Pro add-on, nutritional info claimed a checkout display that doesn’t
   exist, the FAQ said locations are unlimited on the free plan even though it’s
   limited to one, Sound Notifications was listed as fully Pro when the base tone
   is free, and “Product Add-ons & Extras” and “Product Options” were used interchangeably
   for the same feature.
 * Fixed: a link on the Support page to “edit these details under Settings” was 
   visible to any role that can save plugin settings, but the Support settings tab
   itself is only visible to full administrators — non-admin managers saw a link
   that led nowhere useful.
 * Fixed: the setup assistant’s hint text for Product Options pointed at a menu 
   label (“Product add-ons”) that doesn’t exist; the actual menu item is “Product
   Options”.
 * Fixed: activating the plugin without WooCommerce active showed a hard-coded, 
   untranslatable error message.
 * Added: Twilio is now listed under External Services, since the optional SMS Notifications
   feature sends the customer’s phone number and a status message to Twilio when
   enabled.
 * Changed: the default “support is free of charge” note on a fresh install no longer
   hard-codes a Swiss franc amount.

#### 3.4.8

 * Fixed: two license checks (the location limit on the Free plan and the pickup
   time-slot buffer) checked whether the code is running the Pro build rather than
   whether an actual Pro license or trial is active. On a Pro build without a valid
   license (for example after a trial ends), both stayed unlocked indefinitely.
 * Fixed: the “Send receipt” button on Kanban cards always appeared, even when the
   code running underneath it doesn’t include that feature; it’s now only shown 
   when it will actually work.
 * Fixed: the dashboard tiles for disabled Pro features (Tables, Reservations) said“
   a manager can enable it under Settings” even without any license — they now clarify
   that a Pro license is required first. The Announcement Bar settings page was 
   also missing its “Pro” badge.
 * Changed: a note in the README now clarifies that the GitHub release contains 
   the full Pro codebase, which requires a paid license (or the 7-day trial) to 
   use the Pro features.
 * Added: a warning notice when more than one location is published without an active
   Pro license or trial (for example right after a trial ends) — existing locations
   keep working, but no further locations can be published until the count is back
   to one or a license is active.

#### 3.4.7

 * Fixed: uninstalling the plugin with data deletion enabled left substantial data
   behind: order metadata on shops using High-Performance Order Storage (a separate
   database table the cleanup never touched), category time-schedule data, order-
   item metadata, and — for the underscore-prefixed keys used by guest notes and
   stamp cards — customer allergy notes and loyalty stamp counts. The role and capability
   cleanup also used an outdated, hand-maintained list that predated several current
   roles and permissions.
 * Fixed: the option cleanup on uninstall used a very generic “oos_” prefix wildcard
   that could have deleted unrelated options from other plugins; it’s now limited
   to the one legacy option name this plugin actually used.
 * Added: guest notes and stamp card data (notes, allergies, stamp count, reward
   coupon) can now be exported or erased through Tools  Export/Erase Personal Data,
   and a short privacy policy suggestion is offered under Settings  Privacy.

#### 3.4.6

 * Fixed: a WooCommerce session cookie was set on every single page view (even for
   visitors who never touched a location link), which prevented full-page caching
   from working for any first-time visitor. The cookie is now only set when a location
   or order-type deep link parameter is actually present in the URL.
 * Fixed: a translation filter for the checkout “Billing details” heading compared
   against a German string that could never match (the filter always receives the
   original English text), so it silently did nothing; it also ran an expensive 
   page-type check for every single translated string on the site instead of only
   for the one relevant string.

#### 3.4.5

 * Fixed: the tip amount was never saved to the order (only added as a checkout 
   fee), so the statistics page counted every tip as a generic add-on instead of
   showing it separately.
 * Fixed: cart-wide and “buy N get M free” promotion discounts were recognized in
   the statistics page by matching the English fee name “Promotion: ” — on non-English
   shops (including all German, French and Italian setups) this never matched, so
   these discounts were silently counted as regular add-on revenue.
 * Fixed: the statistics page loaded the entire matching order history into memory
   in one query and only filtered by location afterwards in PHP; large shops with
   a long order history could hit memory or time limits. Orders are now fetched 
   in batches and filtered by location directly in the database query.

#### 3.4.4

 * Fixed: time slot capacity only counted orders created in the last 24 hours, not
   by their pickup time. A pre-order placed more than a day in advance was invisible
   to the capacity check, so a fully-booked slot could still be overbooked. Capacity
   is now counted by pickup date; existing pre-orders are backfilled automatically
   on update.
 * Fixed: a location’s “Open now” status ignored holidays entirely — closed holidays
   still showed as open and accepted immediate orders, and a holiday with special
   hours on an otherwise closed weekday showed no available time slots at checkout.
 * Fixed: the holiday date-picker in Settings also greyed out holidays that have
   their own special opening hours, not just fully closed ones.
 * Fixed: the “next opening” text (e.g. “Opens Mon 11:00”) always showed the day
   abbreviation in German, regardless of the site’s language.

#### 3.4.3

 * Fixed: cart-wide promotion rules (“buy over X, get Y% off” and “buy N, get M 
   free”) calculated the discount as a fee that did not reduce the tax base, so 
   VAT stayed at the pre-discount amount. The discount fee is now taxable, using
   the same tax class as the order (including the Takeaway/Dine-in Swiss VAT switch,
   if enabled).
 * Fixed: on shops that display prices including tax, a percentage or minimum-order-
   value promotion was calculated against the tax-excluded subtotal, giving a smaller
   discount than advertised and applying the minimum-order threshold too late.
 * Fixed: a promotion’s day/time schedule was silently discarded when saved while
   the (unrelated) Scheduled Availability feature was switched off, and any already-
   saved schedule was ignored at checkout — the promotion ran around the clock regardless
   of its configured hours.

#### 3.4.2

 * Fixed: the Stamp Card’s “Maximum amount” setting made the reward voucher invalid
   on carts above that amount instead of capping the discount at it. The discount
   is now genuinely capped, verified against carts both under and over the limit.
 * Fixed: a fixed-amount reward (rather than a percentage) was rounded down to a
   whole number and could not exceed 100 — a CHF 7.50 reward was silently saved 
   as CHF 7, and anything above CHF 100 was rejected.
 * Fixed: the stamp card display always said “% off” even when the reward was configured
   as a fixed amount.
 * Fixed: an already-redeemed or expired reward voucher kept showing on the stamp
   card indefinitely instead of clearing once it could no longer be used.
 * Fixed: cancelling or refunding an order that had already earned a stamp never
   gave the stamp back.

#### 3.4.1

 * Fixed: Locations, Tables, and Product Options used WordPress’s generic post-editing
   rights, so any Author (or other role able to publish posts) could create or publish
   one directly by URL, bypassing the plugin’s own menus entirely. All three now
   require the same dedicated capability the plugin’s own menu already expected.
 * Added: a dedicated permission for managing reservations, separate from the Product
   Options permission it was previously tied to. Staff and Managers can now open
   the Reservations board and change a reservation’s status or table, as documented—
   previously only full Administrators could.
 * Fixed: the “Delete Data on Uninstall” setting could be changed by a Shop Manager;
   it is now restricted to full Administrators, matching how the option is presented
   in the interface.
 * Fixed: the POS “create order” endpoint accepted the generic `edit_posts` capability
   as an alternative to the dedicated POS permission, which unintentionally let 
   non-POS roles create orders through it.

#### 3.4.0

 * Fixed: the checkout, the table QR code link, and the reservation form accepted
   any numeric ID as a “location” or “table” without checking it was actually one—
   the title of an unrelated post could end up in the order, the thank-you page,
   and confirmation emails. Table QR codes also bypassed the location’s availability
   window. All three now validate against the real location/table.
 * Fixed: a pre-order pickup time was only checked against remaining capacity, not
   against its format, whether it was in the past, or whether the location actually
   offers that time slot at all.
 * Fixed: the reservation form only checked that the date was “today or later” —
   a time earlier today, a time outside opening hours, a closed holiday, and double-
   booking the same table at the same time were all accepted.
 * Fixed: a guest who created an account during checkout (turning them from logged-
   out to logged-in mid-request) could lose their selected location and pickup time,
   because a redundant nonce check no longer matched after the login state changed.

#### 3.3.3

 * Fixed: cancelling an order from the dashboard had no status check, so an already-
   completed or already-refunded order could be cancelled (and refunded again) a
   second time. Only orders still in Processing, On Hold, or Pending can be cancelled
   now, and a partially refunded order is refunded for the remaining amount only,
   not the full total again.

#### 3.3.2

 * Fixed: the location restriction for managers and staff (Settings  Manager Assignments)
   only applied to the REST API and the Statistics page. Over the regular admin-
   ajax endpoints, staff and managers could view, change, and cancel orders at any
   location, and retrieve the receipt of any WooCommerce order, not just their own
   location’s. All order-related endpoints now …

## Meta

 *  Version **3.6.16**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 8.1 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/libre-bite/)
 * Tags
 * [ordering](https://bre.wordpress.org/plugins/tags/ordering/)[pos](https://bre.wordpress.org/plugins/tags/pos/)
   [reservations](https://bre.wordpress.org/plugins/tags/reservations/)[restaurant](https://bre.wordpress.org/plugins/tags/restaurant/)
   [woocommerce](https://bre.wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://bre.wordpress.org/plugins/libre-bite/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/libre-bite/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/libre-bite/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/libre-bite/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/libre-bite/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/libre-bite/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/libre-bite/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/libre-bite/reviews/)

## Contributors

 *   [ Pulacha Labs ](https://profiles.wordpress.org/simon61/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/libre-bite/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://github.com/simurech/libre-bite)