Title: Dine on Tap
Author: Access in Focus
Published: <strong>July 15, 2026</strong>
Last modified: July 15, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/dine-on-tap.svg)

# Dine on Tap

 By [Access in Focus](https://profiles.wordpress.org/accessinfocus/)

[Download](https://downloads.wordpress.org/plugin/dine-on-tap.3.0.0.zip)

 * [Details](https://wordpress.org/plugins/dine-on-tap/#description)
 * [Reviews](https://wordpress.org/plugins/dine-on-tap/#reviews)
 *  [Installation](https://wordpress.org/plugins/dine-on-tap/#installation)
 * [Development](https://wordpress.org/plugins/dine-on-tap/#developers)

 [Support](https://wordpress.org/support/plugin/dine-on-tap/)

## Description

Dine on Tap is a digital menu platform for restaurants, bars, cafes, and hotels.
Guests scan a QR code to browse your menu on their phone — no app required. Staff
manage everything from a PIN-protected mobile dashboard.

Built from the ground up to meet WCAG AA accessibility standards, including keyboard
navigation, screen reader support, dark mode, and high contrast mode.

Dine on Tap is free and fully functional on its own, including DeepL auto-translation(
you supply your own DeepL API key). Tableside service requests with staff push notifications
are available through the optional Dine on Tap Plus add-on.

**Menu Management**

 * Create and manage categorized menu items with prices, descriptions, and images
 * Three display templates: item-image, category-image, and text-only
 * Category hierarchy with parent/child relationships
 * Portion sizes with customizable units (g, ml, oz, pcs, servings)
 * Item image layout options: left, right, or top
 * Category image layout options: left, right, or alternating
 * Hero banner section with customizable overlay, title, and subtitle
 * Theme customization: colors, fonts, spacing, and style presets
 * Carousel pagination on desktop (768px+) with previous/next navigation for categories
   with many items
 * Drag-free reorder system for items and categories

**Daily Specials & Scheduling**

 * Scheduled categories for time-limited menus (Breakfast, Lunch, Happy Hour, etc.)
 * Day-of-week scheduling with start and end times
 * Featured items with special pricing (diamond badge)
 * Popular and Recommended badges for highlighting items
 * Item visibility toggle for managing daily availability
 * Automatic sold-out reset at a configurable hour each day

**Allergens & Dietary Info**

 * EU 14 built-in allergens with emoji indicators
 * Allergen filter on the frontend — guests filter the menu by dietary needs
 * Combined search and allergen filtering for precise menu browsing
 * Nutrition/calorie info per item
 * Enable only the allergens your venue uses

**Multilingual Support**

 * Bilingual menus with language toggle on the frontend
 * Auto-translation via DeepL API (you supply your own DeepL API key)
 * RTL language support (Arabic, Hebrew, Persian)
 * Frontend label customization for any language
 * Full i18n support with .po/.mo translation files

**QR Codes**

 * Generate QR codes with customizable size and error correction
 * Download as a PNG image

**Staff Dashboard**

 * PIN-protected mobile-friendly dashboard on the frontend
 * Manage item availability, badges, and daily specials
 * Edit items, categories, and scheduled categories
 * Collapsible translation fields with auto-translate and save

**Tableside Service Requests** (Dine on Tap Plus add-on)

 * Built-in request types: Bring the Bill, Bring Cutlery, Bring Extra Plates, Clean
   Table, Need Assistance
 * Custom request types with emoji icons
 * Payment method selection (card/cash) on bill requests
 * Free-text messages from guests
 * Operating hours scheduling
 * Rate limiting to prevent spam
 * Email and push notification alerts for staff

**Multi-Currency Pricing**

 * 107 currencies across all regions
 * Main currency plus optional secondary currency
 * Automatic currency symbol display

**Accessibility (WCAG AA)**

 * Keyboard navigation for all interactive elements
 * Visible focus indicators on every control
 * Screen reader optimized with proper ARIA attributes and live announcements
 * Translatable aria-labels for all navigation controls
 * Dark mode with full contrast compliance
 * High contrast mode support (Windows, macOS)
 * Touch-friendly button sizes for mobile
 * Responsive design from 320px to desktop
 * WCAG color contrast checker built into settings

**Business Type Presets**

 * Restaurant, Bar/Pub, Cafe/Coffee Shop, Hotel Room Service
 * Customizable labels for items, descriptions, and portions

**Shortcodes**

 * `[dineontap_menu]` — Display the full menu on any page or post
 * `[dineontap_manager]` — PIN-protected staff dashboard

For more information, visit [accessinfocus.com/software/dine-on-tap/](https://accessinfocus.com/software/dine-on-tap/).

### Third-Party Libraries

This plugin bundles the following third-party libraries. All are GPL-compatible.

 * **PHP QR Code** — used to generate QR code images.
    License: GNU Lesser General
   Public License v3 (LGPL-3.0). Source: http://phpqrcode.sourceforge.net/ Location:
   includes/phpqrcode.php
 * **Alpine.js** (version 3.15.12) — lightweight JavaScript framework used by the
   staff dashboard.
    License: MIT. Source: https://github.com/alpinejs/alpine Location:
   assets/js/alpine.min.js

### External Services

The free Dine on Tap plugin does not contact any external service on its own. It
has no analytics, no license check, and no automatic phone-home.

The only optional outbound connection is DeepL auto-translation. If a site administrator
enters their own DeepL API key and clicks translate, the menu text to be translated
plus its source and target languages are sent to DeepL. No customer, order, or personal
data is ever sent.
 DeepL privacy policy: https://www.deepl.com/en/privacy DeepL
terms: https://www.deepl.com/en/pro-license

Web Push staff notifications, which also use an external browser push service, are
provided only by the separate Dine on Tap Plus add-on and are documented there.

## Installation

 1. In WordPress admin, go to Plugins > Add New and search for “Dine on Tap”
 2. Click Install Now, then Activate
 3. Navigate to Dine on Tap in the admin sidebar
 4. Add your menu items and categories
 5. Add the `[dineontap_menu]` shortcode to a page to display your menu

No license key or account is required. To add tableside service requests with staff
push notifications, install the separate Dine on Tap Plus add-on from [accessinfocus.com/software/dine-on-tap/](https://accessinfocus.com/software/dine-on-tap/)
and enter your key on the Plus License screen.

## FAQ

### How do I display the menu on my website?

Add the shortcode `[dineontap_menu]` to any page or post. The full menu with all
visible categories and items will be displayed.

### How do I set up the staff dashboard?

Go to Dine on Tap > Manager tab in the admin and set a PIN. Then add the `[dineontap_manager]`
shortcode to a page. Staff access the dashboard by entering the PIN on that page.

### Is Dine on Tap free?

Yes. The full menu, QR codes, allergens, scheduled specials, the staff dashboard,
bilingual menus, and DeepL auto-translation (you supply your own API key) are all
free with no account or license key. A separate Dine on Tap Plus add-on adds tableside
service requests and staff push notifications. A license key is only needed for 
the Plus add-on, available at [accessinfocus.com/software/dine-on-tap/](https://accessinfocus.com/software/dine-on-tap/).

### Can I use multiple languages on my menu?

Yes. The free plugin supports a primary and a secondary language with manual translations
and a language toggle on the frontend, plus DeepL auto-translation (you supply your
own DeepL API key) to add more languages automatically.

### How do scheduled categories work?

Scheduled categories appear automatically based on time of day and day of week. 
Create a scheduled category (e.g., “Lunch Menu”), set start/end times and active
days, then add items to it.

### What display templates are available?

Three templates: **item-image** (images next to each menu item), **category-image**(
one image per category section), and **text-only** (no images). Choose in Settings
> General > Display Template.

### Does the plugin support multiple currencies?

Yes. Choose a main currency and optionally a secondary currency from 107 supported
currencies. Prices display in both currencies on the frontend.

### How do tableside service requests work?

Guests tap a “Request Service” button on the menu page to send requests like “Bring
the Bill” or “Need Assistance”. Staff receive push notifications and manage requests
from the dashboard.

### Is the plugin accessible?

Yes. Dine on Tap is built to WCAG AA standards with keyboard navigation, screen 
reader support, visible focus indicators, dark mode, and high contrast mode. A built-
in contrast checker helps you verify your color choices.

### How do QR codes work?

Go to the QR Code tab, enter your menu page URL, choose a size and error correction
level, then click Generate. You can then download the QR code as a PNG image.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Dine on Tap” is open source software. The following people have contributed to 
this plugin.

Contributors

 *   [ Access in Focus ](https://profiles.wordpress.org/accessinfocus/)

[Translate “Dine on Tap” into your language.](https://translate.wordpress.org/projects/wp-plugins/dine-on-tap)

### Interested in development?

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

## Changelog

#### 3.0.0

 * First release on the WordPress.org plugin directory — free and fully functional,
   with no license key or account required.
 * Removed all license/tier gating. Every included feature works out of the box.
 * Shortcodes renamed to `[dineontap_menu]` and `[dineontap_manager]`. If you are
   upgrading from an earlier (non-WordPress.org) version, update the shortcodes 
   on your pages.
 * DeepL auto-translation is now included for free (you supply your own DeepL API
   key).
 * Tableside service requests and staff push notifications are now provided by the
   separate Dine on Tap Plus add-on.
 * Removed the custom CSS editor. Theme colors, fonts, spacing, and style presets
   remain in Settings.
 * QR codes export as PNG images (the PDF export was removed).
 * Updated Alpine.js to 3.15.12.
 * Existing settings are migrated automatically on upgrade.

#### 2.23.3

 * Manager dashboard content area: neutral paper-beige background (`#f7f3ea`) replaces
   the previous yellow-tinted cream
 * Manager CRUD tables (Menu Items / Categories / Scheduled): strip client-theme
   vertical cell borders so the intended horizontal-separator list-view shows through
 * Manager CRUD tables: Image column is now centered (header + thumbnail/placeholder)
   instead of left-hugging the cell edge
 * Manager CRUD tables: row actions use `flex-wrap + gap` so the Delete button no
   longer glues to the buttons above when the column wraps to a second line
 * Menu Items table: Price cell uses `white-space: nowrap` so “18.85 EUR” stays 
   on a single line when the column narrows
 * Fix “Cannot modify header information — headers already sent” PHP warning when
   the trust-cookie session restore fires after template output has begun; the session
   cookie refresh now waits for a later request instead of breaking the page

#### 2.23.2

 * Category title bar: reduced vertical padding (12  8px) and desktop heading size(
   2rem  1.5rem) for a more compact header; `!important` dropped on desktop so client
   themes can override
 * Manager dashboard: Menu Items tab now shows the main currency symbol next to 
   each price (matches the Status tab behaviour); admin Items tables also updated
 * Category carousel on desktop: converted from 1-item sliding window to true pagination
   with a “P. X of Y” indicator (short, translatable); last page clamps its window
   so it still shows a full row of items; screen-reader announcement uses the full
   word “Page X of Y”
 * Manager dashboard content area: locked warm off-white background (`#fffbeb`) 
   so client themes can’t bleed a dark wrapper through the dashboard

#### 2.23.1

 * Menu item spacing now applies identically on mobile and desktop (removed the 
   1.5× desktop multiplier) so the admin setting behaves predictably per client
 * Fixed Bulgarian translations: un-fuzzied 14 auto-suggested entries that were 
   being excluded from the compiled .mo, and manually corrected 10 more (notably
   the “Hide/Show %s from menu” visibility-toggle aria-labels, which were falling
   back to English in VoiceOver)

#### 2.23.0

 * Menu item visibility toggle: per-item eye icon (show/hide) in admin and manager
   dashboards, with dimmed row + strikethrough for hidden items. Accessible (24×
   24 / 44×44 hit target, aria-pressed, shape + color redundancy)
 * New setting “Visible categories on mobile” (3-15, default 8) — controls the Jump-
   to-Section overflow threshold and pill count before the “Show all” button
 * Manager dashboard now defaults to Menu Items and remembers the last-viewed tab
   per browser
 * VoiceOver focus now reliably lands on the category title after tapping a Jump-
   to-Section pill (waits for scrollend)
 * Category title bar vertical padding reduced from 24px to 12px on desktop; theme-
   proof with !important
 * Items-list gap locked against theme overrides so the admin “Item Spacing” setting
   wins everywhere
 * Manager dashboard locked to a consistent light palette across client themes; 
   dark mode still auto-activates on OS preference with expanded coverage (login,
   buttons, badges, iOS banner, Status view)
 * Fixed mobile overflow items not actually hiding when some themes override the[
   hidden] attribute
 * Custom CSS editor gated behind an extra collapsible warning step inside the Advanced
   section
 * Fixed misleading Custom CSS helper text that implied two shortcodes existed
 * Updated Bulgarian translations

#### 2.22.0

 * Size & Price Variations: menu items can now have multiple size/price options (
   e.g. 170ml, 500ml, 1000ml)
 * Variations displayed inline on frontend with portion + price per row
 * Collapsible variations section in admin and manager dashboard item forms
 * Variations duplicated when items are duplicated, cleaned up on delete

#### 2.21.4

 * Fix Bulgarian translations not displaying for strings containing quotes
 * Update license tier prices: Core €49.99, Plus €99.99
 * Complete Bulgarian translations for all admin panel strings

#### 2.21.2

 * Default secondary currency to unticked on fresh installs
 * Hide additional price field in edit items when secondary currency is disabled
 * Fix manager dashboard secondary currency check using correct option
 * Remove pre-seeded default categories on fresh install
 * Remove 6 obsolete translation strings from .pot and .po files

#### 2.21.1

 * Fix activation error on fresh installs caused by legacy order table migrations
 * GitHub Actions workflow for building clean plugin ZIP on release

#### 2.21.0

 * Carousel pagination for menu categories on desktop (768px+) with previous/next
   navigation
 * Table number announcement on menu when scanned from table-specific QR codes
 * Translatable aria-labels for carousel navigation buttons (Show previous items,
   Show next items)
 * Translatable screen reader announcement for carousel item range
 * New customizable labels: showPreviousItems, showNextItems, showingItemsRange
 * Labels added to Navigation & Accessibility admin section for translation
 * Updated .pot and .po/.mo translation files with new strings
 * Bulgarian translations for all new accessibility labels

#### 2.20.0

 * Removed modifier groups and order-related legacy code
 * Fixed Alpine.js component initialization (manager dashboard items now load correctly)
 * Fixed Content Security Policy for Alpine.js compatibility
 * Collapsible translation fields in item and category edit forms
 * Renamed Availability tab to Status
 * Fixed duplicate aria-label on item options
 * Warm amber color palette for the manager dashboard
 * Clearer badge icons: diamond (featured), trend arrow (popular), heart (recommended)
 * WCAG AA contrast fixes for light and dark modes
 * Dark mode support for CRUD modals, tables, cards, and dropdowns
 * Updated plugin description
 * Removed stale order/cart translation strings

#### 2.18.2

 * Accessibility improvements: focus traps, ARIA attributes, touch targets
 * WCAG 1.4.10 reflow fixes for 200% and 400% zoom
 * Dark mode contrast improvements for badges and allergen filters
 * iOS VoiceOver modal escape fix
 * Sold-out auto-reset cron implementation
 * Automatic plugin updates with version guard

#### 2.16.0

 * Tiered licensing system: Core and Plus plans
 * Feature gating by license tier
 * Push notification settings reorganization

#### 2.15.0

 * Multi-location support for restaurant chains
 * Per-location table counts and QR codes
 * Location filtering in admin and manager dashboard

#### 2.14.0

 * Category hierarchy with parent/child relationships
 * Category descriptions

#### 2.13.0

 * Push notifications via Web Push (VAPID)
 * Tableside service request module

#### 2.12.0

 * PIN-protected staff dashboard
 * Manager app with mobile-friendly views

#### 2.10.0

 * Quick toggle panel for scheduled categories
 * Item hide/show for daily specials
 * Reorder items within scheduled menus

#### 2.9.0

 * Category and item image support with layout options
 * Split layout with sticky image column on desktop

#### 2.8.0

 * Scheduled categories with time and day-of-week support
 * Hero banner section
 * Multi-currency expansion to 107 currencies

#### 2.7.0

 * External CSS/JS architecture
 * WCAG contrast checker in settings
 * Business type presets

## Meta

 *  Version **3.0.0**
 *  Last updated **11 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.0.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [accessible](https://wordpress.org/plugins/tags/accessible/)[digital menu](https://wordpress.org/plugins/tags/digital-menu/)
   [qr code](https://wordpress.org/plugins/tags/qr-code/)[restaurant menu](https://wordpress.org/plugins/tags/restaurant-menu/)
   [wcag](https://wordpress.org/plugins/tags/wcag/)
 *  [Advanced View](https://wordpress.org/plugins/dine-on-tap/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/dine-on-tap/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/dine-on-tap/reviews/)

## Contributors

 *   [ Access in Focus ](https://profiles.wordpress.org/accessinfocus/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/dine-on-tap/)