Installation & Activation
Flavor – Restaurant Menu is a WordPress plugin. Install it like any other plugin — no build tools or FTP required.
Install from WordPress.org
Go to Plugins → Add New
In your WordPress admin dashboard, navigate to Plugins → Add New Plugin.
Search for "Flavor Menu"
Type Flavor Menu in the search field and press Enter.
Install & Activate
Click Install Now, then Activate. The plugin menu appears under Menü in your admin sidebar.
Install via ZIP (Pro)
After purchasing Pro, download the .zip file from your Freemius account. Then:
- Go to Plugins → Add New → Upload Plugin
- Choose the downloaded
flavor-restaurant-menu-premium.zip - Click Install Now → Activate
Quick Start Guide
Create your first restaurant menu in under 5 minutes.
Create a category
Go to Menü → Categories and add your first category (e.g. "Starters", "Main Courses").
Add your first dish
Go to Menü → Add New. Enter the dish name, description, price and assign it to a category.
Add the shortcode to a page
Create or edit a WordPress page and add [flavor_menu]. The menu appears automatically.
Preview & customize
Visit the page on the frontend. Adjust layout, theme and columns via shortcode parameters.
Free vs. Pro
Flavor is available in a free version on WordPress.org and a Pro version with all features unlocked.
| Feature | Free | Pro |
|---|---|---|
| Dishes | Unlimited | Unlimited |
| Categories | ✓ | ✓ |
| Card Grid layout | ✓ | ✓ |
| 6 additional layouts | – | ✓ |
| Theme: Elegant Dark | ✓ | ✓ |
| Themes: Light, Earth, Custom | – | ✓ |
| 40 Google Fonts | – | ✓ |
| Multiple prices per dish | – | ✓ |
| Badges | – | ✓ |
| Allergens & Nutrition | – | ✓ |
| Guest Ratings | – | ✓ |
| Multiple Locations | – | ✓ |
| QR Code Table Stand | – | ✓ |
| CSV Import / Export | – | ✓ |
| Gutenberg / Elementor / WPBakery | ✓ | ✓ |
Dishes & Categories
Adding a Dish
Go to Menü → Add New. Every dish has the following fields:
| Field | Description |
|---|---|
| Title | The dish name, displayed prominently in all layouts. |
| Description | Long description text (post content). Used in Card Grid, Horizontal and Featured layouts. |
| Subtitle | Short tagline shown below the title (e.g. "with truffle oil"). |
| Price(s) | One or more prices with optional labels (e.g. Small / Large). |
| Category | Assign to one or more menu categories. |
| Sort Order | Integer — dishes are sorted ascending. Lower number = appears first. |
| Featured Image | Dish photo — used in card layouts. |
| Badge | Optional badge (e.g. "Popular", "New", "Vegan"). Pro only. |
| Location | Assign to one or more restaurant locations. Pro only. |
| Allergens | Tick applicable EU allergens. Pro only. |
| Nutrition | Calories, fat, carbs, protein per 100g. Pro only. |
Categories
Go to Menü → Categories to manage categories. Categories are hierarchical — you can create parent categories (e.g. "Food") and subcategories (e.g. "Starters", "Main Courses").
Category Sort Order
Go to Menü → Category Sort to drag and reorder categories. The order set here controls the display sequence in all layouts.
Shortcode Reference
The [flavor_menu] shortcode renders the menu on any page or post. All parameters are optional.
[flavor_menu
title=""
description=""
category=""
location=""
layout="card-grid"
style="dark"
columns="3"
image_ratio="4-3"
show_filter="yes"
hide_all_btn=""
default_category=""
show_badges="yes"
currency="€"
limit="12"
el_class=""
]
All Parameters
| Parameter | Description | Default |
|---|---|---|
| title | Menu heading displayed above the filter bar. | empty |
| description | Subtitle text below the heading. | empty |
| category | Slug of a category to show only that category (and its children). | all |
| location | Slug(s) of location(s), comma-separated. Filters dishes by location. Pro | all |
| layout | One of: card-grid, price-list, table, horizontal, featured, compact, sectioned. Pro except card-grid. | card-grid |
| style | Theme: dark, light, earth, custom-1, custom-2, custom-3. Pro except dark. | dark |
| columns | Number of columns: 2, 3 or 4. Applies to card-grid and horizontal layouts. Pro | 3 |
| image_ratio | Image aspect ratio: 4-3, 1-1 or 16-9. Pro | 4-3 |
| show_filter | Show category filter buttons: yes or no. | yes |
| hide_all_btn | Hide the "All" filter button: yes or no. | no |
| default_category | Slug of the category pre-selected when the page loads. | all |
| show_badges | Show badges on dishes: yes or no. Pro | yes |
| currency | Currency symbol displayed before each price. | € |
| limit | Maximum number of dishes to load. Max 200. | 12 |
| el_class | Extra CSS class added to the wrapper for custom styling. | empty |
Examples
[flavor_menu layout="price-list" style="light" title="Our Menu"]
[flavor_menu layout="card-grid" columns="2" category="drinks" currency="$"]
[flavor_menu layout="sectioned" style="earth" location="berlin" limit="50"]
All 7 Layouts
Flavor offers 7 distinct layouts to match any restaurant style. Card Grid is available in the Free version — all others require Pro.
Card Grid Free
The default layout. Dishes displayed as photo cards in a 2–4 column grid. Includes a category filter bar and subcategory scroll navigation.
- Category filter buttons at the top
- Subcategory scroll navigation (subnav)
- Allergens shown as a 180° card flip on click
- Guest ratings displayed as stars below the price
[flavor_menu layout="card-grid" columns="3"]
Price List Pro
A classic restaurant menu list. Each row shows dish name, dot leaders and price in a single line. Descriptions appear below the name.
- Dot leaders between name and price
- Allergen ⓘ button after dish name → floating popup
- Multiple prices stacked below the name
[flavor_menu layout="price-list" style="light"]
Table Pro
A structured table format. Ideal for menus with many dishes across categories. Allergens are shown as abbreviation chips with inline popovers.
[flavor_menu layout="table"]
Horizontal Card Pro
Each dish is displayed as a wide card with the photo on the left and content on the right. Allergens trigger a 180° flip showing allergen info and nutrition values.
[flavor_menu layout="horizontal" columns="2"]
Featured Pro
The dish with the lowest Sort Order in each category becomes the hero — displayed large at the top. Remaining dishes appear in a smaller grid below.
Sort Order value in its category.[flavor_menu layout="featured"]
Compact List Pro
A dense, text-only list ideal for large menus or drinks cards. Prices appear as chips. Clicking a row opens the allergen popup.
[flavor_menu layout="compact"]
Sectioned List Pro
Categories appear as large decorative headings. Dishes are listed beneath each category heading. Ideal for print-style menus.
[flavor_menu layout="sectioned" style="earth"]
Themes & Colors
Flavor ships with 3 built-in themes and 3 fully customizable custom theme slots.
| Theme | Shortcode value | Availability |
|---|---|---|
| Elegant Dark | dark | Free & Pro |
| Clean Light | light | Pro |
| Warm Earth | earth | Pro |
| Custom 1 | custom-1 | Pro |
| Custom 2 | custom-2 | Pro |
| Custom 3 | custom-3 | Pro |
Custom Themes
Go to Menü → Custom Themes to configure up to 3 custom color themes. Each theme has 7 color pickers:
- Card Background — surface color of dish cards
- Border Color — subtle separators and outlines
- Accent Color — prices, badges, highlights
- Heading Color — dish names and category titles
- Text Color — descriptions and body text
- Muted Text — subtitles and secondary info
- Dot Line Color — price list dot leaders
Typography & Fonts Pro
Go to Menü → Typography to set a heading font and a body font for your menu. Choose from 40 curated Google Fonts across 3 groups.
Font Groups
- Serif — elegant, classic restaurant feel (e.g. Playfair Display, Cormorant Garamond)
- Sans-Serif — modern, clean (e.g. DM Sans, Inter)
- Display — decorative, unique (e.g. Josefin Sans, Abril Fatface)
Local Font Caching (GDPR)
Flavor can download font files to your server so no request is made to Google's CDN. Go to Menü → Typography → Local Font Cache and click Download Fonts Locally.
- Font files are saved to
wp-content/uploads/flavor-fonts/ - Once cached, zero requests leave your domain
- You can clear the cache at any time to revert to Google CDN
Allergens & Nutrition Pro
Flavor supports all 14 EU mandatory allergens (Regulation 1169/2011) and optional nutritional values per dish.
Setting Up Allergens
In the dish edit screen, scroll to the Allergens & Nutrition meta box. Tick any applicable allergens:
The 14 EU Allergens
Gluten · Crustaceans · Eggs · Fish · Peanuts · Soybeans · Milk · Nuts · Celery · Mustard · Sesame · Sulphites · Lupin · Molluscs
Nutritional Values
Below the allergen checkboxes, enter optional values per 100g: Calories (kcal), Fat (g), Carbohydrates (g), Protein (g).
How Allergens Display per Layout
| Layout | Display method |
|---|---|
| Card Grid | ⓘ badge on card image → click card to flip and see allergens + nutrition |
| Horizontal Card | Card flip → two-column layout (allergens left, nutrition right) |
| Featured | Click hero or mini card → flip |
| Price List | ⓘ button after dish name → centered floating popup |
| Compact List | ⓘ button after description → click row to open popup |
| Sectioned List | ⓘ button after dish name → centered floating popup |
| Table | Abbreviation chips below dish name → click chip → inline popover |
Guest Ratings Pro
Allow guests to rate dishes from 1 to 5 stars directly in the Card Grid layout.
Enable Ratings
Go to Menü → Guest Ratings and toggle ratings on. The star widget appears on every dish card.
How it Works
- Guests click a star (1–5) on any dish card
- Rating is saved per IP address — one vote per dish per visitor
- Average rating and vote count are displayed below the price
- Clicking stars on a flippable card does not trigger the allergen flip
Badges Pro
Badges are small colored labels (e.g. "Popular", "New", "Vegan") that appear on dish cards and in list layouts.
Create a Badge
Go to Menü → Badges. Enter a badge name, choose a background color and an optional emoji. Save.
Assign a Badge to a Dish
In the dish edit screen, select a badge from the Badge dropdown in the meta box. Each dish can have one badge.
show_badges="no".Multiple Locations Pro
If you run multiple restaurant branches, assign dishes to specific locations and show a location-specific menu per page.
Setup
Create locations
Go to Menü → Locations and add a location for each branch (e.g. "berlin", "munich").
Assign dishes
In each dish's edit screen, tick the applicable location(s) in the Locations meta box.
Use the shortcode
Add location="berlin" to your shortcode. Only dishes assigned to that location are shown.
[flavor_menu location="berlin" layout="price-list"]
QR Code & Table Stand Pro
Generate a print-ready table stand card with a QR code linking to your menu page — directly from the WordPress admin.
Steps
Go to Menü → Table Stand
Enter the URL of your menu page (the page with the [flavor_menu] shortcode).
Customize the design
Choose a style (Minimal / Elegant / Branded), paper size (A5 / A6), colors, logo and background image.
Save as PDF
Click Save as PDF. The design is rendered at high resolution (~267 DPI for A6) and opens in a new browser tab ready to print.
CSV Import / Export Pro
Go to Menü → Import / Export to bulk-import dishes from a CSV file or export your entire menu.
CSV Column Format
| Column | Required | Description |
|---|---|---|
| title | ✓ | Dish name |
| description | Long description text | |
| subtitle | Short tagline | |
| category | Category name or path using > for subcategories (e.g. Food > Starters) | |
| sort_order | Integer sort order | |
| price_1 | First price value | |
| price_1_label | Label for first price (e.g. "Small") | |
| price_2 | Second price value | |
| price_2_label | Label for second price | |
| price_3 | Third price value | |
| price_3_label | Label for third price | |
| badge | Badge slug | |
| location | Location slug(s), comma-separated | |
| allergens | Allergen slugs, comma-separated (e.g. gluten,milk) | |
| calories | Calories per 100g | |
| fat | Fat in grams per 100g | |
| carbs | Carbohydrates in grams per 100g | |
| protein | Protein in grams per 100g |
Import Behavior
- Update existing — a dish with the same title is updated, not duplicated
- Auto-create categories — categories that don't exist are created automatically
- Preview — the first 5 rows are shown before the actual import runs
- Result report — each row shows ✓ Created / ↻ Updated / ✗ Error
- Encoding — UTF-8 (with or without BOM)
- Separator — comma
,or semicolon;(configurable) - Max file size — 2 MB
Page Builders
Flavor integrates natively with Gutenberg, Elementor and WPBakery. All page builders use the same renderer — the output is always identical.
Gutenberg Block
Search for "Flavor Menu" in the Gutenberg block inserter. The block provides dropdowns for all shortcode options — no shortcode knowledge needed.
- Layout, Theme, Columns, Image Ratio — all configurable in the sidebar panel
- Category and Location dropdowns are populated from your existing data
- Preview renders server-side in the editor
Elementor Widget
In the Elementor editor, search for "Flavor Menu" in the widget panel. Drag it onto the canvas.
- All options available in the Elementor Content tab
- Live preview in the Elementor canvas
- Works with Elementor Free and Elementor Pro
WPBakery
In the WPBakery editor, click Add Element and search for "Flavor Menu".
- All shortcode parameters available as form fields
- Works in both Classic and Grid modes
FAQ
Do I need a page builder?
No. Flavor works with the standard WordPress shortcode [flavor_menu] — paste it into any page or post. Page builder integrations (Gutenberg, Elementor, WPBakery) are available but not required.
Will my data be lost when I update the plugin?
No. All dishes, categories, images and settings are stored in the WordPress database. Plugin updates only replace code files — your content remains untouched.
Does it work with my theme?
Yes. Flavor uses fully encapsulated CSS scoped to its own wrapper class .flavor-menu. It does not interfere with your theme's styles.
Can I show different menus for different locations?
Yes. Create locations under Menü → Locations, assign dishes to them, then use the location="slug" shortcode parameter on each page. See the Locations section for full details.
How do I control which dish appears first?
Set the Sort Order field on each dish. Dishes are sorted ascending — a dish with Sort Order 1 appears before one with 10. In the Featured layout, the dish with the lowest sort order becomes the hero.
Can I use multiple menus on one page?
Yes. Place multiple [flavor_menu] shortcodes on a single page — each with different category, layout or location parameters. Each instance is fully independent.
Is the menu responsive?
Yes. All 7 layouts are fully responsive and tested on mobile, tablet and desktop. The column count is automatically reduced on small screens.
How do I translate the plugin?
Flavor uses the WordPress standard translation system (Text Domain: flavor-restaurant-menu). Use a plugin like Loco Translate or WPML to translate admin strings and frontend labels.
The menu doesn't show — what should I check?
- Is the plugin activated? Go to Plugins and verify.
- Have you added at least one dish and assigned it to a category?
- Is the shortcode
[flavor_menu]on the page (not just in a widget)? - Check the
limitparameter — the default is12. Increase if you have more dishes.