The best WordPress restaurant menu plugin and how to use it

May 24, 2022

One of the biggest problems you might face as a restaurant owner is showcasing your food menu in a user-friendly way. A WordPress restaurant menu plugin enables you to effectively display your menu online - and ideally take online orders too.

When someone wants to visit a restaurant, they often check out the menu online beforehand. And in our new world of lockdowns and social distancing, many restaurants are rushing to set up online ordering so that people can actually order from the menu on their smartphones.

Of course, you can just add a page to your website manually listing the foods from your menu. However, this won't look professional, your customers can't interact with it, and it's a pain to maintain.

The solution - the best WordPress restaurant menu plugin

WooCommerce Restaurant Ordering Plugin - add-ons

The solution is to install a good restaurant menu plugin on your WordPress website. This will display detailed information about each dish in your menu including its name, image, description, and price.

The menu might list your food items for information purposes only. Alternatively, it might include 'Add to order' buttons so that hungry customers can select items from the restaurant menu and order online. They can then have their food delivered, collect it in person, or use their mobile to order from the table while eating in.

This way, you’ll get a much more attractive menu that will ultimately result in more sales, like this:

WooCommerce restaurant plugin
A WordPress restaurant menu plugin with online ordering

Or if you just want to publish your restaurant menu without online ordering, then it might look like this:

Online restaurant menu in WordPress.
A read-only WordPress restaurant menu plugin

Next, I'll take you step-by-step through the process of displaying your dishes and beverages online – including from mobile devices – using a WordPress restaurant menu plugin. We'll discover two different ways to set it up:

  1. Use a WordPress restaurant menu plugin to take food orders online
  2. Publish your restaurant menu online for information only (no online ordering only)

Display your foods online with an ordering system

First, I’ll explain how you can create an online ordering system to display your restaurant’s food items online. We’ll use a WordPress restaurant menu plugin to make things easier. For this tutorial, we’ll assume you already have:

  • WooCommerce set up on your WordPress website, including payment gateways such as PayPal or Stripe.
  • Food items (appetizers, main courses, desserts, and beverages) added as WooCommerce products.

Step #1: Install and activate WooCommerce Restaurant Ordering

Get the WooCommerce Restaurant Ordering plugin and install it on your restaurant website:

Display your restaurant menu online and start taking online orders - in less than 10 minutes! Love it or your money back.
  1. Download the plugin files and copy the license key straight away from the order confirmation page.
  2. Next, log in to the WordPress dashboard and navigate to Plugins → Add New → Upload. Upload the WooCommerce Restaurant Ordering zip file and activate the plugin.
  3. Go to WooCommerce → Settings → Products → Product tables and paste the WordPress plugin’s license key in the License key field.
  4. Click the Save Changes button at the bottom of the screen to continue. Go through the settings and add things like your restaurant information and opening times. (This prevents people from ordering while you're closed.)

Step #2: Decide which columns to display in the online restaurant menu

You can configure your online menu from the same plugin settings screen (i.e. WooCommerce → Settings → Restaurant).

Think about what information you want to display about the food items from your restaurant menu. This should generally be the same information that you include on your printed menus. You can choose from the item name, description (which could be a brief summary of the dish, or factual information about allergens or ingredients), and price.

You might also consider displaying an image of the food item (which is taken from your product's Featured Image in WooCommerce) so that customers can easily identify an item on the menu. This also gives them an idea of what to expect.

Also select the best layout for your restaurant menu. Choose the number of columns, and whether you want to show extra information about each item in a lightbox or allow ordering directly from the restaurant menu page.

The WordPress restaurant menu plugin is incredibly flexible. You can display whatever information you'd like, along with unlimited menu items and categories!

Flexible food order form WooCommerce plugin
The WooCommerce Restaurant Ordering plugin has a huge choice of layout options

Step #3: View your restaurant menu page

While you were following steps 1 and 2, your WordPress restaurant menu plugin was working hard behind the scenes! To prove it, go to the main list of Pages in the WordPress admin and find a new page called 'Restaurant Ordering'. The plugin has created this for you automatically.

Your default restaurant ordering page will list all the categories that you selected on the plugin settings page. The food items will appear under each category name and description.

Now, you can finish off your restaurant menu page in any way you like:

  • Rename this page, e.g. to 'Our Restaurant Menu - Order Online'.
  • Add it to the navigation menu on your WordPress website.
  • To allow customers to place their orders more quickly and easily, install the WooCommerce Fast Cart plugin. This adds a popup cart and checkout so that they can complete their orders directly on the restaurant menu page.
WooCommerce restaurant floating cart
Use WooCommerce Restaurant Ordering with Fast Cart for quicker ordering.

Note that your online menu might look slightly different depending on the theme you’re using. WooCommerce Restaurant Ordering is fully responsive, so this will work out of the box on mobile devices and tablets too.

How to create multiple food and drink menus

So far, you've learned how to install a WordPress restaurant menu plugin where all the food items are listed on the same page.

If you need more flexibility, then you can create more menus using the restaurant ordering shortcode. This lets you add unlimited menus anywhere on your site. Each one can be different, and will list the foods from one or more of your menu categories.

WooCommerce restaurant food ordering shortcode
List foods anywhere with a simple shortcode

How it works

Once you've launched your WooCommerce restaurant menu with online ordering, this is what a typical user flow would look like:

  1. Your customers will start by browsing the online restaurant menu.
  2. They will use the one-page order form to select food items, set quantities, and (optionally) select variations or add-ons from a lightbox popup.
  3. They’ll add the selected food items to the cart to place their order.

Depending on how you set up WooCommerce, your customers can pay online or submit their order to pay in person when they receive their food. They can also choose delivery or collection, or you can let them choose an exact Delivery Slot. You'll find instructions for all these extra features in the WooCommerce Restaurant Ordering plugin documentation.

Benefits of using a searchable table for your online restaurant menu

By adding a searchable product table to your online restaurant menu and ordering system, you can make it as fast as possible for customers to select food items and place an order.

Display your food menu online without an ordering system

You can create a simple menu without online ordering features by creating a custom post type adding each food item. You will then use the Posts Table Pro plugin to list the foods in a restaurant menu, just like this:

Preview of Posts Table Pro on the front-end.

This way you can use a category to group different menu items. For example, you might have a category for pizzas and a separate category for pastas. You can also use a custom meta box to include the price of menu items and any additional details you want such as calorie count.

Once you have your menu items added to your website, all you have to do is create a special page template to display the different menu items on your online food menu. You can display the entire menu on a single page or create separate menus for different types of items any given menu such as appetizers, main courses, and beverages.

The most flexible WordPress restaurant menu plugin for creating a simple online menu!

Step #1: Create a custom post type for your food items using Easy Post Types and Fields

Head over to PluginsAdd New and search for the free Easy Post Types and Fields plugin. Install and activate it on your WordPress website.

Next, go to Post Type → Manage in your WordPress dashboard and click on Add New. In the wizard, enter the singular and plural post type names and click Next. For example, you might set it to something like Menu Item or Menu Items.

menu items custom post type

Once you have your custom post type ready, you can add custom fields to the post type from the Manage page. Click on the Custom Fields button and add the custom fields. For example, you can add custom fields for price, calorie count, or allergens.

Once you are done, click on the Save button.

Step #2: Create custom taxonomies for your menu items

By now, you’ve created a new custom post type for your menu items. You’ve also created custom fields to store unique information about each menu item. We also need to create custom taxonomies for grouping the menu items. This will allow us to sort and filter them in the front-end table layout.

Here’s what you need to do:

Go to Post Type → Manage. Click on the taxonomies button for the post type you wish to edit and click on the Add New button. Enter the singular and plural names and the slug for your new taxonomy. For example, you might set it to something like Menu Item Category or Menu Item Categories.

Change the slug (if required) slug and click on Add taxonomy button.

taxonomy menu items categories

Step #3: Add each food item as a new Menu Item

Now that you’ve created the Menu Item custom post type, it’s time to add each food item and beverage as a separate menu item. This is a similar process to how you would create a new WordPress post.

Here’s what you need to do:

Go to your custom post type and create a new post for each menu item that you want to showcase in your menu. Start by adding the food’s name as the menu item title.

Add menu items.

Add a short description in the text editor. Fill out the custom fields you created in Step #1 i.e. price, calorie count, and allergens. Upload an image of the food item as a featured image.

Click the Publish button to proceed.

Repeat these steps until you’ve added all of the menu items to your WordPress website.

Step #4: Create your restaurant online menu

Now that you have all of the food items added to your WordPress website as menu items, the next step is to display them on the front-end.

Get the Posts Table Pro plugin and install it to your WordPress website. Once that’s done, head over to SettingsPosts Table Pro from the WordPress admin.

Post Table Pro's post type option.

Set the Post type option to menu_item using the drop-down menu. If you named your custom post type something else, you should see its slug in the drop-down.

Post Table Pro's columns option.

Next, use the Columns option to choose which columns you’d like to include in your restaurant’s online menu. For example, you might add image,title,content,cf:calorie_count,cf:price to show columns for featured image, the menu item’s name, description, calorie count, and price.

Post Table Pro's custom filters option.

Finally, scroll down till you reach the Custom filters option and enter tax:menu_item_category.

Click the Save Changes button to proceed.

Step #5: Create a page to display your online restaurant menu

Go to Pages > Add New from the WordPress admin panel to create a new page for your restaurant menu.

Posts Table Pro shortcode in text editor.

Add the [posts_table] shortcode to it. Click the Publish button and preview your restaurant menu on your site’s front-end. It should look something like this:

Preview of Posts Table Pro on the front-end.

To make it easier for customers to browse your online menu, you might consider splitting it up into different categories. For example, you could display a separate menu for Salads, Main Courses, and Drinks on the same page.

Here’s how:

Create relevant subheadings such as Starters, Salads, Main Courses, and Drinks for each section of your restaurant ordering menu.

Add the shortcode [posts_table category="category-slug"] under each sub-heading to display food items from the relevant category. For instance, to display food items categorized under Salads, add the shortcode [posts_table term="menu_item_category:salads"].

Save the page and click the Preview button to see how it looks on the front-end.

Online restaurant menu in WordPress.

Get the best WordPress restaurant menu plugin today

As you can see, it's surprisingly easy to add an online menu and food ordering system to your WordPress restaurant website.

  • If you're looking for a way to create an online menu with ordering capabilities then WooCommerce Restaurant Ordering is the plugin for you.
  • Alternatively, the Posts Table Pro plugin works as a robust WordPress restaurant menu plugin enabling you to create a searchable, sortable, and filterable online menu for your restaurant (without online ordering).

Both plugins come with a no risk 30-day money back guarantee. Choose a restaurant plugin depending on whether or not you need online ordering, and set it up today!

Publish your restaurant menu online in less than 10 minutes, complete with online ordering!

Do you have any questions about the best WordPress restaurant menu plugin to use for your website? Get in touch by commenting below.


  1. Wendell
    April 13, 2020 Reply

    Is there a way to automatically list all categories that have products in them instead of manually adding each category as a separate shortcode?

Please share your thoughts...

Your email address will not be published.