{CODICTS} Snippets is now available
CoDicts Default Featured Image

MyListing Theme Menu Pro

The {CODICTS} MyListing Menu Pro plugin lets listing owners create, manage, and display fully categorized product and service menus directly on their listing pages. Whether it’s a restaurant food menu, a salon’s service list, or a retail product catalog, listing owners can build rich, organized menus with categories, items, images, pricing, tags, and item options — all manageable from both the WordPress admin panel and the frontend user dashboard.

Installation & Activation

Start by downloading the plugin from the Downloads page on your dashboard on the CoDicts website.

After downloading, install and activate the plugin in WordPress by navigating to “Plugins” > “Add New” > “Upload Plugin” and selecting the downloaded zip file. Click “Install Now” and then “Activate”.

On activation, the plugin automatically registers its custom post type, taxonomy, and the “My Menu” WooCommerce endpoint. Navigate to “Menu Pro” in the WordPress admin sidebar to start managing menus.

Tip: If the “My Menu” tab doesn’t appear in the WooCommerce My Account page after activation, go to Settings → Permalinks and click “Save Changes” to flush rewrite rules.


Key Features

FeatureDescription
User-Managed MenusListing owners create and manage menus from their WooCommerce “My Account” dashboard.
Admin-Managed MenusSite administrators can create, edit, duplicate, and delete menus from the WordPress admin panel.
Category-Based OrganizationMenus are grouped into categories, each with a name, description, and image.
Rich Menu ItemsEach item supports a name, price, description, tags, image, and customizable item options.
Two Display TemplatesGrid and List layouts, both responsive.
Shortcode-Driven DisplayDisplay menus anywhere on a listing page via a flexible shortcode with numerous attributes.
QR Code GenerationEach menu gets a unique shareable link and downloadable QR code.
CSV ImportBulk-import menu items and categories via CSV files.
Drag-and-Drop SortingReorder categories and items with an intuitive sort interface.
Item OptionsSite-wide reusable item modifiers (e.g., “Size: Small/Medium/Large”) via a hierarchical taxonomy.
Listing Type & Package RestrictionsRestrict menu access based on listing type and WooCommerce package.
Shortcode BuilderVisual builder in the settings page to generate shortcodes without writing code.
Navigation ModesCombined or separate category navigation when multiple menus are on one page.
Form Field VisibilityAdmins can toggle which fields appear on the menu creation form.

How It Works

The plugin provides two ways to manage menus:

For site administrators: Use the “Menu Pro” admin panel to create and manage menus for any listing. You have full control over all menus, settings, item options, and restrictions.

For listing owners: Use the “My Menu” tab in the WooCommerce My Account dashboard to create and manage menus for their own listings. They can add categories, items, images, and generate QR codes — all from the frontend.

Menus are displayed on listing pages using the [codicts-mylisting-menu-pro] shortcode, which automatically shows the menus associated with the current listing.


Admin Panel

The plugin adds a top-level “Menu Pro” menu in the WordPress admin sidebar with four sub-pages.

Menus (List View)

Navigate to Menu Pro → Menus to see all menus in a sortable, searchable table.

The table displays each menu’s name, associated listing, enabled/disabled status, author, and date. You can edit, duplicate, or delete individual menus, or use bulk delete to remove multiple menus at once.

Add / Edit Menu

Navigate to Menu Pro → Add New to create a menu, or click “Edit” on an existing menu.

The menu editor contains:

General Fields:

FieldDescription
TitleThe menu name (required).
DescriptionOptional menu description.
ListingAssociate the menu with a specific listing (search-powered dropdown).
TagA text tag to group or filter menus (e.g., “drinks”, “food”).
Sort OrderControls display order — lower numbers appear first. Default: 0.
EnableYes/No — whether the menu is publicly visible.

Categories: Below the general fields, you can add unlimited categories. Each category has a name, optional description, optional image, and a sort order.

Menu Items: Within each category, you can add unlimited menu items. Each item has:

FieldDescription
Item NameName of the item (required).
PriceFree-text price field (e.g., “$12.99”, “From $8”).
TagsComma-separated tags (e.g., “Spicy”, “Vegan”, “Popular”). Display as colored badges.
DescriptionItem description.
ImageItem photo (opens in a lightbox when clicked on the frontend).
Item OptionsSelect from reusable site-wide options (see Item Options below).

Note: All fields except Title, Category Name, and Item Name can be toggled on/off in the settings (see Form Field Visibility below).

Item Options

Navigate to Menu Pro → Item Options to manage reusable item modifiers.

Item Options use a parent/child structure. For example:

Size
  ├── Small
  ├── Medium
  └── Large

Extras
  ├── Extra Cheese
  ├── Extra Sauce
  └── Gluten Free

Create parent options as groups (e.g., “Size”, “Extras”), then add child options within them. When editing a menu item, these options appear in a popup where users can check the applicable options. Item Options support drag-and-drop reordering.


Settings

Navigate to Menu Pro → Settings to configure the plugin.

Form Field Visibility

Toggle which fields appear on the menu creation form (both admin and frontend). This lets you simplify the form by hiding fields you don’t need.

SectionAlways VisibleCan Be Toggled
GeneralTitleDescription, Author (admin only), Listing, Menu Tag, Sort Order, Show/Hide Toggle
CategoryCategory NameCategory Description, Category Image
Menu ItemItem NameItem Price, Item Description, Item Tag, Item Image, Item Options

QR Code Settings

SettingDescription
Default Menu TabThe default menu tab slug used when generating QR code links.
Above Download ButtonA shortcode to display content above the QR download button in the QR modal.
Below Download ButtonA shortcode to display content below the QR download button in the QR modal.

Listing Type & Package Restrictions

Restrict which listing types and packages can use the menu feature:

1. Enable restrictions for a listing type using the toggle.

2. Choose to disable for all packages (completely blocks menus for that listing type), or select specific packages to restrict. A “No Package” option is available for listings without any package.

When a listing is restricted, the shortcode outputs nothing (menu is hidden) and the frontend dashboard shows a “Restricted” badge with a tooltip.

Shortcode Builder

The right column of the settings page contains a visual Shortcode Builder. Select your options (source, template, columns, navigation, etc.) and the plugin generates the complete shortcode string with a “Copy to Clipboard” button.


Frontend User Dashboard

My Menu Tab

The plugin adds a “My Menu” tab to the WooCommerce My Account page at /my-account/my-menu/. This is where listing owners manage their menus.

The dashboard displays all menus created by the logged-in user with:

A listing filter dropdown to filter menus by associated listing.

A menu table showing the listing name, menu thumbnail, menu title, action buttons (Edit, QR Code, Delete), creation date, and status (Enabled / Disabled / Restricted).

An “Add Menu” button to create a new menu.

Pagination at 12 menus per page.

Creating a Menu (Frontend)

1. Click “Add Menu” from the My Menu dashboard.

2. Fill in the menu title and general fields.

3. Add categories — click the add button to create a new category. Enter the category name, description, and optionally upload an image.

4. Add menu items within each category — enter the item name, price, tags, description, upload an image, and select item options.

5. Save the menu.

The frontend form mirrors the admin editor but is styled with MyListing’s form design. Users can only edit their own menus.


Display Templates

Menus can be displayed using two templates, selected via the shortcode’s template attribute.

Grid Template

Displays menu items in a multi-column card layout. Each category gets a header with its image, name, and description, followed by item cards in a configurable grid (1–4 columns). Items show their image (with lightbox), name, price, tags as colored badges, description, and an info icon for item options.

List Template

Displays menu items in a single-column linear layout. More compact than the grid — items are shown vertically with the name on the left and price on the right. Tags display inline.

Common Features (Both Templates)

Category navigation bar — a horizontal scrollable nav with category thumbnails and names. Clicking a category scrolls to that section.

Sticky navigation (experimental) — keeps the category nav fixed at the top when scrolling.

Image lightbox — item images open in a full-screen lightbox when clicked.

Item options popup — clicking the info icon on an item opens a modal showing the associated options grouped by parent.

Tag positioning — tags can appear above or below the item content.

Responsive — both templates adapt to mobile viewports.


Shortcode Reference

Use the [codicts-mylisting-menu-pro] shortcode to display menus on listing pages or anywhere on your site.

Basic Usage

[codicts-mylisting-menu-pro]

Without attributes, the shortcode displays all enabled menus associated with the current listing page.

Attributes

AttributeDefaultDescription
idCurrent postThe listing ID to display menus for.
menu_idnoneSpecific menu post ID(s). Accepts comma-separated IDs (e.g., "123,456").
tagnoneFilter menus by their tag value (e.g., "drinks").
order_start0Start displaying from the Nth menu (1-based). 0 = no limit.
order_end0Stop displaying after the Nth menu. 0 = no limit.
templategridDisplay template: grid or list.
col3 (grid) / 1 (list)Number of columns (1–4).
gap15px (grid) / 0 (list)Gap between columns (CSS value).
navtrueShow category navigation bar: true or false.
nav_stickyfalseMake navigation sticky on scroll (experimental): true or false.
nav_modecombinedcombined = all menus share one nav. separate = each menu has its own nav.
tag_positiontopPosition of item tags: top or bottom.

Examples

Grid layout with 2 columns:

[codicts-mylisting-menu-pro col="2" template="grid" gap="10px" nav="true" tag_position="bottom"]

Filter by tag:

[codicts-mylisting-menu-pro tag="drinks" col="2" template="grid"]

Specific menus with separate navigation:

[codicts-mylisting-menu-pro menu_id="123,456" nav_mode="separate"]

List template without navigation:

[codicts-mylisting-menu-pro template="list" nav="false"]

Show only menus 2 through 4 (by sort order):

[codicts-mylisting-menu-pro order_start="2" order_end="4"]

For a specific listing ID:

[codicts-mylisting-menu-pro id="789" template="grid" col="3"]

Note: The shortcode outputs nothing if no menu items exist, preventing blank space on the page. Empty menus (no categories or no items) are hidden automatically.


QR Code System

Each menu generates a unique shareable link and downloadable QR code, perfect for printed menus, table cards, or marketing materials.

How It Works

1. From the frontend My Menu dashboard, click the “QR Code” button on any menu.

2. A popup modal appears with the QR code image, the shareable link, and a download button.

3. When someone scans the QR code or visits the link, they see a standalone page displaying the menu with a link back to the listing page.

The shareable link format is: https://yoursite.com/?mn={listing_id}&tk={menu_id}

QR code images are generated via the free api.qrserver.com service.


CSV Import

The plugin supports bulk-importing menu items and categories via CSV files, saving time when setting up large menus.

Menu Item Import: From the menu editor, upload a CSV file to add items to a category in bulk. An “Example CSV File” download button is available to show the expected format.

Category Import: Import entire categories with their items from a CSV file.


Sorting & Ordering

The plugin provides multiple ways to control the display order of menus, categories, and items.

LevelHow to Sort
MenusUse the Sort Order field on each menu. Lower numbers appear first.
CategoriesEach category has a sort order field. Drag-and-drop sorting is also available.
Menu ItemsUse the dropdown position selector or the Up/Down arrow buttons to reorder items within a category.
Item OptionsDrag-and-drop sorting on the Item Options taxonomy page.

When displaying multiple menus on a single page, you can choose how category navigation behaves:

ModeShortcodeBehavior
Combined (default)nav_mode="combined"All categories from all menus appear in a single shared navigation bar. Best for menus that are part of the same logical group.
Separatenav_mode="separate"Each menu gets its own independent navigation bar. Best for distinct menus on the same page (e.g., “Food Menu” + “Drinks Menu”).

Listing Type & Package Restrictions

Admins can control which listing types and WooCommerce packages have access to the menu feature.

How to Set Up Restrictions

1. Navigate to Menu Pro → Settings → Listing Types Restrictions.

2. Enable restrictions for the desired listing type.

3. Choose to disable for all packages (blocks menus entirely for that listing type) or select specific packages to restrict.

4. Use the “No Package” option to restrict listings that don’t have any package assigned.

What Happens When Restricted

The shortcode outputs nothing (menu is hidden from visitors). On the frontend My Menu dashboard, restricted menus show a “Restricted” badge with a “Listing Package Restriction” tooltip. Listing owners can still see their menus in the dashboard but they won’t be publicly visible.


Frequently Asked Questions

Does the plugin require WooCommerce?

Yes. WooCommerce is required for the “My Menu” endpoint in the My Account dashboard. The menu display shortcode itself works independently, but the frontend management interface needs WooCommerce.

Can listing owners manage their own menus?

Yes. Listing owners access the “My Menu” tab in their WooCommerce My Account page to create, edit, and delete menus for their own listings. They can only manage their own menus — not other users’ menus.

Can I display menus outside of listing pages?

Yes. Use the shortcode with the id attribute to specify a listing ID, or menu_id to display specific menus by their post ID. This works on any page, post, or widget.

Can I show multiple menus on one page?

Yes. Use menu_id="123,456" to show specific menus, or use the tag attribute to filter by tag. Use nav_mode="separate" if you want each menu to have its own category navigation bar.

What happens to menu data if I deactivate the plugin?

Menu data (posts and meta) remains in the database. Only rewrite rules are flushed on deactivation. You can reactivate the plugin later and all menus will still be there.

Can I restrict menus to certain listing packages?

Yes. In the settings, you can enable restrictions per listing type and select which WooCommerce packages should have menu access disabled. You can also restrict listings with no package.

How do I hide fields I don’t need on the menu form?

Go to Menu Pro → Settings → Form Fields Configuration and toggle off the fields you want to hide. This applies to both the admin editor and the frontend form. Title, Category Name, and Item Name are always visible.

Can I import menus in bulk?

Yes. The plugin supports CSV import for both menu items and entire categories. Download the example CSV file from the menu editor to see the expected format.

How do QR codes work?

Each menu generates a unique shareable link. The plugin creates QR code images via the free api.qrserver.com service. When scanned, the QR code opens a standalone page displaying the menu.

Can I use the shortcode builder instead of writing shortcodes manually?

Yes. Navigate to Menu Pro → Settings and use the visual Shortcode Builder in the right column. Select your options and copy the generated shortcode.


Troubleshooting

Menus Not Showing on Listing Pages

CauseSolution
Shortcode not placedVerify the [codicts-mylisting-menu-pro] shortcode is placed on the listing page template.
Menu not enabledCheck that the menu’s “Enable” setting is set to Yes.
Wrong listing associationEnsure the menu is associated with the correct listing.
Package restriction activeCheck Menu Pro → Settings → Listing Types Restrictions for the relevant listing type and package.
Empty menuMenus with no categories or no items are hidden automatically. Add at least one category with one item.

“My Menu” Tab Not Appearing in My Account

CauseSolution
Rewrite rules not flushedGo to Settings → Permalinks and click “Save Changes”.
Plugin needs reactivationDeactivate and reactivate the plugin to re-register the endpoint.
WooCommerce not activeEnsure WooCommerce is installed and active.

Menu Items Not Saving

CauseSolution
PHP max_input_vars too lowMenus with many categories and items generate many form fields. Increase your PHP max_input_vars to 5000 or higher in your server’s PHP configuration.
JavaScript errorCheck the browser console (F12 → Console) for errors that might prevent form submission.

QR Code Not Loading

CauseSolution
Outbound requests blockedQR codes are generated via an external API (api.qrserver.com). Ensure your server can make outbound HTTP requests and the API is accessible.

CSS / Layout Conflicts

The plugin uses namespaced CSS classes. If you experience layout issues, check for conflicts with your theme or other plugins. The plugin’s CSS classes are prefixed with codicts- and mlrmp-.

Restricted Menus

If a menu shows “Restricted” status on the frontend dashboard, check Menu Pro → Settings → Listing Types Restrictions to review the restriction rules for the relevant listing type and package.

“MyListing Theme Not Detected” Error

The MyListing theme must be installed and active. Go to Appearance → Themes to verify.


For further support, visit codicts.com or contact us at support@codicts.com.

CoDicts Co., Ltd. © 2021-2026. All rights reserved