{"id":348855,"date":"2026-08-07T16:23:12","date_gmt":"2026-08-07T16:23:12","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/raintech-restaurant-menu\/"},"modified":"2026-08-21T14:54:27","modified_gmt":"2026-08-21T14:54:27","slug":"raintech-restaurant-menu","status":"publish","type":"plugin","link":"https:\/\/mr.wordpress.org\/plugins\/raintech-restaurant-menu\/","author":23301688,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"4.0","stable_tag":"trunk","tested":"7.1","requires":"6.0","requires_php":"8.0","requires_plugins":null,"header_name":"Restaurant Manager \u2014 Online Food Ordering, Delivery & Pickup","header_author":"raintech357","header_description":"Manage and display a restaurant menu with categories, items, prices, images and a shortcode to display the menu anywhere.","assets_banners_color":"edd4cd","last_updated":"2026-08-21 14:54:27","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":111,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"6.0":{"tag":"6.0","author":"raintech357","date":"2026-08-21 14:54:27"}},"upgrade_notice":{"0.6.3":"<p>Menu categories and food items are now global rather than per-location; product images, redesigned menu layout, and bookable delivery\/pickup time slots are added. No manual action required \u2014 existing data is preserved.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3659224,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["6.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3659224,"resolution":"1","location":"assets","locale":"","width":1328,"height":623},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3659224,"resolution":"2","location":"assets","locale":"","width":1324,"height":610},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3659224,"resolution":"3","location":"assets","locale":"","width":1332,"height":483},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3659224,"resolution":"4","location":"assets","locale":"","width":1753,"height":961}},"screenshots":{"1":"Customer storefront \u2014 menu browsing with category sections and priced variations.","2":"Slide-in cart with a guided checkout flow.","3":"Admin dashboard \u2014 order management.","4":"Admin menu editor \u2014 products, categories, and variations."}},"plugin_section":[],"plugin_tags":[149734,276839,43684,16222,20710],"plugin_category":[39,43],"plugin_contributors":[254129],"plugin_business_model":[],"class_list":["post-348855","plugin","type-plugin","status-publish","hentry","plugin_tags-food-delivery","plugin_tags-food-ordering-plugin","plugin_tags-online-ordering","plugin_tags-pickup","plugin_tags-restaurant","plugin_category-business","plugin_category-customization","plugin_contributors-raintech357","plugin_committers-raintech357"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/raintech-restaurant-menu_edd4cd.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/raintech-restaurant-menu\/assets\/screenshot-1.png?rev=3659224","caption":"Customer storefront \u2014 menu browsing with category sections and priced variations."},{"src":"https:\/\/ps.w.org\/raintech-restaurant-menu\/assets\/screenshot-2.png?rev=3659224","caption":"Slide-in cart with a guided checkout flow."},{"src":"https:\/\/ps.w.org\/raintech-restaurant-menu\/assets\/screenshot-3.png?rev=3659224","caption":"Admin dashboard \u2014 order management."},{"src":"https:\/\/ps.w.org\/raintech-restaurant-menu\/assets\/screenshot-4.png?rev=3659224","caption":"Admin menu editor \u2014 products, categories, and variations."}],"raw_content":"<!--section=description-->\n<p><strong>Restaurant Manager<\/strong> turns any WordPress site into a fully working online food ordering platform \u2014 no WooCommerce, no page builder, no third-party ordering service. It's built specifically for restaurants that want <strong>delivery and pickup ordering<\/strong> without the overhead of a general-purpose ecommerce plugin.<\/p>\n\n<p>Everything a restaurant needs to take orders online is included out of the box: a menu with categories and priced variations (sizes, crusts, spice levels), a shopping cart, a guided checkout, live order tracking for customers, and a complete order-management dashboard for staff.<\/p>\n\n<h4>Why Restaurant Manager?<\/h4>\n\n<ul>\n<li><strong>Purpose-built for restaurants<\/strong> \u2014 the entire plugin is scoped to online food ordering. No table reservations, no floor plans, no dine-in or QR-code ordering to wade through.<\/li>\n<li><strong>No WooCommerce required<\/strong> \u2014 a self-contained REST API and custom database tables mean no dependency on WooCommerce, Elementor, or Divi.<\/li>\n<li><strong>Fast, modern interfaces<\/strong> \u2014 the admin dashboard and customer storefront are both built in React for a fast, app-like experience instead of clunky page reloads.<\/li>\n<li><strong>Accurate pricing, every time<\/strong> \u2014 a server-side pricing engine recalculates every order directly from the database (item price, variations, discounts, delivery fee, tax), so prices sent from a browser are never trusted blindly.<\/li>\n<li><strong>Extensible payments<\/strong> \u2014 ships with Cash on Delivery and Cash at Pickup; add Razorpay, Stripe, or any other gateway by implementing a simple payment gateway interface.<\/li>\n<\/ul>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li>Menu management with categories and per-product variations (e.g. Small\/Medium\/Large, Regular\/Spicy), each with its own price<\/li>\n<li>Product photos via the native WordPress media library<\/li>\n<li>Shopping cart with a slide-in side-cart drawer and a guided Cart \u2192 Details \u2192 Payment checkout flow<\/li>\n<li>Delivery and pickup order types, with configurable delivery fees, free-delivery thresholds, and bookable time slots<\/li>\n<li>Customer order tracking by order number<\/li>\n<li>Admin dashboard: Orders, Menu, Delivery &amp; Pickup, Customers, Discounts, Analytics, and Settings<\/li>\n<li>Bulk actions for managing products and categories<\/li>\n<li>Built-in demo data importer to preview the storefront with a sample menu<\/li>\n<li>Discount codes and promotions<\/li>\n<li>Custom roles and capabilities for restaurant staff<\/li>\n<li>REST API under <code>\/wp-json\/restaurant\/v1\/<\/code> covering locations, menu, orders, delivery, customers, discounts, analytics, and settings \u2014 every endpoint server-side validated<\/li>\n<li>A simple <code>[restaurant_app]<\/code> shortcode embeds the entire customer-facing storefront (menu, cart, checkout, order tracking) on any page<\/li>\n<li>A guided Setup wizard creates the storefront page for you automatically<\/li>\n<\/ul>\n\n<p>Whether you run a single restaurant or a small chain, Restaurant Manager gives you a dedicated food ordering plugin without paying for or configuring a full ecommerce platform.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/restaurant-manager<\/code>, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Go to <strong>Restaurant Manager &gt; Setup<\/strong> in wp-admin and complete the setup wizard \u2014 it creates the storefront page for you automatically.<\/li>\n<li>Add your menu categories and products under <strong>Restaurant Manager &gt; Menu<\/strong>, or use the built-in demo data importer to preview the storefront instantly.<\/li>\n<li>Configure delivery fees, pickup time slots, and payment options under <strong>Restaurant Manager &gt; Delivery &amp; Pickup<\/strong> and <strong>Settings<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20woocommerce%20for%20this%20plugin%20to%20work%3F\"><h3>Do I need WooCommerce for this plugin to work?<\/h3><\/dt>\n<dd><p>No. Restaurant Manager is completely standalone \u2014 it uses its own custom database tables and REST API, with no dependency on WooCommerce or any other ecommerce plugin.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20support%20table%20reservations%20or%20dine-in%20ordering%3F\"><h3>Does this plugin support table reservations or dine-in ordering?<\/h3><\/dt>\n<dd><p>No \u2014 Restaurant Manager is intentionally focused on online ordering only: delivery and pickup. There is no table booking, floor plan, or QR-code dine-in ordering.<\/p><\/dd>\n<dt id=\"can%20i%20add%20my%20own%20payment%20gateway%3F\"><h3>Can I add my own payment gateway?<\/h3><\/dt>\n<dd><p>Yes. Payment gateways are pluggable \u2014 Cash on Delivery and Cash at Pickup are included, and additional gateways (Razorpay, Stripe, etc.) can be added by implementing the plugin's payment gateway interface.<\/p><\/dd>\n<dt id=\"how%20do%20i%20display%20the%20storefront%20on%20my%20site%3F\"><h3>How do I display the storefront on my site?<\/h3><\/dt>\n<dd><p>Add the <code>[restaurant_app]<\/code> shortcode to any page, or let the Setup wizard create that page for you automatically.<\/p><\/dd>\n<dt id=\"can%20customers%20choose%20a%20delivery%20or%20pickup%20time%3F\"><h3>Can customers choose a delivery or pickup time?<\/h3><\/dt>\n<dd><p>Yes \u2014 configure bookable time slots under Restaurant Manager &gt; Delivery &amp; Pickup, and customers will be able to pick a date and time at checkout.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.6.3<\/h4>\n\n<ul>\n<li>Menu categories and food items are now global instead of scoped per location, matching how delivery zones and pickup time slots already worked \u2014 simpler setup for single-location restaurants.<\/li>\n<li>Added product photos: pick an image from the WordPress media library directly in the product editor, shown on the storefront and falling back to a letter placeholder when no photo is set.<\/li>\n<li>Redesigned the storefront menu into category-grouped sections with a card-based layout, quick-jump category filter (defaulting to \"All\"), and inline variation picker pills \u2014 replacing the previous popup for choosing sizes\/options.<\/li>\n<li>Added bookable delivery\/pickup time slots at checkout, only shown when the restaurant has configured at least one time slot.<\/li>\n<li>Added a currency symbol setting, applied everywhere a price is shown to customers.<\/li>\n<li>Added bulk delete for products and categories in the admin.<\/li>\n<li>Added a built-in demo data importer (sample categories and dishes) for quickly previewing the storefront.<\/li>\n<li>Simplified delivery zone configuration to a single fixed delivery fee and free-delivery threshold, replacing the distance-tier rate table.<\/li>\n<li>Cart contents now persist across page reloads.<\/li>\n<li>General admin and storefront UI consistency pass: unified form control styling, converted interactive elements to accessible link-style controls, and various layout refinements.<\/li>\n<\/ul>\n\n<h4>0.6.1<\/h4>\n\n<ul>\n<li>Removed the external Google Fonts link and the Fraunces\/Inter font-family\nreferences \u2014 the storefront and admin now use only the visitor's system\nfont stack, no external requests.<\/li>\n<li>Removed the fixed 640px max-width on the storefront container. Added a\nStorefront layout setting (Restaurant Manager &gt; Settings): Mobile width\n(compact, centered) or Desktop width (wider, more menu columns on large\nscreens), read by the storefront via a small public settings endpoint.<\/li>\n<\/ul>\n\n<h4>0.6.0<\/h4>\n\n<ul>\n<li>Replaced the separate Cart and Checkout pages with a slide-in side-cart\ndrawer that has its own 3-step flow (Cart -&gt; Details -&gt; Payment), so\ncustomers never leave the menu page.<\/li>\n<li>Added a floating bottom-center bar that appears as soon as something is\nadded \u2014 shows the item count and running total, tap to open the drawer.<\/li>\n<li>Menu cards now show an inline quantity stepper once an item is already\nin the cart, instead of just an Add button.<\/li>\n<\/ul>\n\n<h4>0.5.1<\/h4>\n\n<ul>\n<li>Fixed \"Place order\" returning a 500 error: dbDelta only ran on a genuine\nplugin (re)activation, so a site that just had its plugin files replaced\nby a newer zip was left on stale table structure (missing columns like\norders.access_token), and every order insert silently failed. The schema\nnow re-syncs automatically whenever the plugin version changes, the same\nway capabilities already did.<\/li>\n<li>Order-creation failures now log the underlying SQL error and return a\nmore specific message when WP_DEBUG is on, instead of a bare 500.<\/li>\n<li>Redesigned the customer storefront: Fraunces\/Inter typography to match\nthe admin, a proper segmented delivery\/pickup control, refined food\ncards with monogram thumbnails, veg\/spicy\/chefs-pick badges, an inline\nquantity stepper once an item is in the cart, and a more considered\ncart\/checkout\/order-status layout.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Removed the entire table-booking system: reservations, table floor plan,\ntable sections, dine-in ordering, and table-linked QR codes are gone \u2014\ntheir database tables, REST endpoints, admin pages, capabilities\n(manage_restaurant_reservations, manage_restaurant_tables, manage_kitchen)\nand the Kitchen Staff role are all removed.<\/li>\n<li>The plugin is now scoped to online ordering only: delivery and pickup,\nwith everything else (menu, cart, checkout, pricing engine, payment\ngateways, delivery zones, pickup slots, discounts, customers, analytics,\nsettings) unchanged.<\/li>\n<li>Cash-at-restaurant gateway now applies to pickup only (dine-in removed).<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Removed the duplicate Kitchen wp-admin page \u2014 Kitchen is now a tab inside\nthe main Restaurant Manager app instead of a second identical page.<\/li>\n<li>Fixed food items\/categories created without an explicit location becoming\ninvisible on the storefront (API now treats unassigned items as available\neverywhere; admin Menu pages now tag new items with the selected location).<\/li>\n<li>Setup wizard now prefills from your saved location on revisit instead of\nshowing a blank form, and no longer discards saved data if page creation\nfails partway through.<\/li>\n<li>Capabilities now resync on every plugin version bump, not just activation,\nso upgrades from an earlier build don't leave admins missing capabilities.<\/li>\n<li>Admin navigation moved from a left sidebar to a top bar.<\/li>\n<li>Storefront menu\/category\/location requests are now cached in memory for\n60s to avoid refetching the same data on every tab switch.<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Reservations, drag-and-drop Tables floor plan, Delivery Zones + rates,\nPickup Slots, QR Codes, Customers, Discounts, Analytics, Settings \u2014\nREST APIs and admin UI for all of them.<\/li>\n<li>Customer storefront: reservation booking page, QR-code ordering\n(auto-fills location\/table from the URL), bottom nav.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Orders, custom cart, checkout, server-side pricing engine, pluggable\npayment gateways (Cash, Cash at restaurant), storefront ordering flow,\nadmin Orders page.<\/li>\n<\/ul>\n\n<h4>0.1.0-phase1<\/h4>\n\n<ul>\n<li>Initial foundation: database, permissions, REST API base, Locations + Menu API,\nReact admin shell, Setup wizard, frontend shortcode stub.<\/li>\n<\/ul>","raw_excerpt":"A standalone online food ordering plugin for WordPress \u2014 delivery and pickup, custom REST API, React admin dashboard and storefront.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/348855","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=348855"}],"author":[{"embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/raintech357"}],"wp:attachment":[{"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=348855"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=348855"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=348855"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=348855"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=348855"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=348855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}