{"id":351326,"date":"2026-09-08T05:11:47","date_gmt":"2026-09-08T05:11:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/restrohub\/"},"modified":"2026-09-08T05:11:33","modified_gmt":"2026-09-08T05:11:33","slug":"savor-pilot","status":"publish","type":"plugin","link":"https:\/\/ka.wordpress.org\/plugins\/savor-pilot\/","author":23538729,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.3","stable_tag":"1.0.3","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"SavorPilot","header_author":"mrshahbazdev","header_description":"All-in-one restaurant management for WordPress \u2014 menus, multi-location ordering, table booking, floor plan, QR table ordering, inventory, kitchen display and guest CRM. No commission.","assets_banners_color":"","last_updated":"2026-09-08 05:11:33","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/github.com\/mrshahbazdev","header_plugin_uri":"","header_author_uri":"https:\/\/github.com\/mrshahbazdev","rating":0,"author_block_rating":0,"active_installs":0,"downloads":48,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"mrshahbaznns","date":"2026-09-08 05:11:33","revision":3685900}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Drag-and-drop menu builder with sections and dish search.","2":"Drag-and-drop floor plan editor per location.","3":"Order status board for kitchen and service staff.","4":"Public menu with cart, dietary filters and QR ordering hint."}},"plugin_section":[],"plugin_tags":[269,6601,1865,10561,20710],"plugin_category":[39,40,43],"plugin_contributors":[273932],"plugin_business_model":[],"class_list":["post-351326","plugin","type-plugin","status-publish","hentry","plugin_tags-booking","plugin_tags-inventory","plugin_tags-menu","plugin_tags-ordering","plugin_tags-restaurant","plugin_category-business","plugin_category-calendar-and-events","plugin_category-customization","plugin_contributors-mrshahbaznns","plugin_committers-mrshahbaznns"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/savor-pilot.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>SavorPilot is a flexible, all-in-one restaurant management plugin for WordPress. It helps restaurants, caf\u00e9s, cloud kitchens and food halls run menus, online ordering, table reservations and kitchen operations from their own website \u2014 with no per-order or per-cover fees.<\/p>\n\n<p><strong>Menus &amp; dishes<\/strong><\/p>\n\n<ul>\n<li>Build unlimited menus with sections, photos, badges, multiple prices and dietary labels.<\/li>\n<li>Full UK-14 allergen support with icons and a printable allergen matrix.<\/li>\n<li>Variant and add-on pricing (e.g. sizes, extras, toppings).<\/li>\n<li>Stock quantity per dish with low-stock email alerts.<\/li>\n<\/ul>\n\n<p><strong>Online ordering<\/strong><\/p>\n\n<ul>\n<li>Public menu with cart, filters and checkout.<\/li>\n<li>Order types: dine-in, pickup and delivery.<\/li>\n<li>QR \u201corder at the table\u201d with automatic table attribution.<\/li>\n<li>Order status board: pending, confirmed, preparing, ready, completed, cancelled.<\/li>\n<li>Printable kitchen tickets.<\/li>\n<\/ul>\n\n<p><strong>Table booking &amp; floor plan<\/strong><\/p>\n\n<ul>\n<li>Drag-and-drop floor plan per location.<\/li>\n<li>Public booking form with live availability.<\/li>\n<li>Booking diary and status management.<\/li>\n<li>Optional Stripe deposits.<\/li>\n<\/ul>\n\n<p><strong>Locations &amp; multi-location<\/strong><\/p>\n\n<ul>\n<li>Manage multiple outlets from one WordPress install.<\/li>\n<li>Per-location opening hours, tax, address and tables.<\/li>\n<li>Location-aware menus and ordering URLs.<\/li>\n<\/ul>\n\n<p><strong>Inventory &amp; reporting<\/strong><\/p>\n\n<ul>\n<li>Stock tracking per dish and automated deductions on orders.<\/li>\n<li>Sales reports by day, revenue, top dishes and order counts.<\/li>\n<\/ul>\n\n<p><strong>SEO<\/strong><\/p>\n\n<ul>\n<li>Schema.org Menu, MenuItem, Offer and Restaurant markup.<\/li>\n<li>Clean permalinks and structured data output.<\/li>\n<\/ul>\n\n<p><strong>Blocks &amp; shortcodes<\/strong><\/p>\n\n<ul>\n<li><code>[restrohub_menu]<\/code> \u2014 display a menu.<\/li>\n<li><code>[restrohub_booking]<\/code> \u2014 show the booking form.<\/li>\n<li><code>[restrohub_opening_hours]<\/code> \u2014 show opening hours and live status.<\/li>\n<li>Gutenberg blocks for Menu, Booking Form and Opening Hours.<\/li>\n<\/ul>\n\n<h3>Source Code<\/h3>\n\n<p>The human-readable source code for the compiled admin UI is included in the <code>admin-ui\/<\/code> directory of this plugin. The <code>assets\/admin-ui\/main.js<\/code> and <code>assets\/admin-ui\/main.css<\/code> files are generated from it.<\/p>\n\n<p>To rebuild the admin UI:<\/p>\n\n<ol>\n<li><code>cd admin-ui<\/code><\/li>\n<li><code>npm install<\/code><\/li>\n<li><code>npm run build<\/code><\/li>\n<\/ol>\n\n<p>Third-party dependencies and build configuration are listed in <code>admin-ui\/package.json<\/code> and <code>admin-ui\/vite.config.js<\/code>.<\/p>\n\n<p>A public copy of the source is also available at: https:\/\/github.com\/mrshahbazdev\/restrohub<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin can optionally connect to Stripe (https:\/\/stripe.com) to process card payments. No Stripe account or data is required unless the site owner enters their own Stripe API keys. When Stripe is enabled, order total, currency and order ID are sent to Stripe's servers over HTTPS. Stripe's privacy policy applies: https:\/\/stripe.com\/privacy.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>savor-pilot<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or install through the WordPress plugin screen.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>SavorPilot \u2192 Settings<\/strong> and set your public menu page and currency.<\/li>\n<li>Add a Location, Dishes and a Menu, then use the shortcode or block to display it.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20savorpilot%20require%20woocommerce%3F\"><h3>Does SavorPilot require WooCommerce?<\/h3><\/dt>\n<dd><p>No. SavorPilot runs standalone.<\/p><\/dd>\n<dt id=\"can%20i%20take%20payments%3F\"><h3>Can I take payments?<\/h3><\/dt>\n<dd><p>Optional Stripe integration is available under <strong>Settings<\/strong>. Card details are entered directly with Stripe (PCI SAQ-A).<\/p><\/dd>\n<dt id=\"can%20i%20use%20multiple%20locations%3F\"><h3>Can I use multiple locations?<\/h3><\/dt>\n<dd><p>Yes. Each location can have its own tables, hours and menu.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Moved the top-level admin menu position from <code>25<\/code> to <code>81<\/code> so it sits below core WordPress menus.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Included the full React\/Vite source for the admin UI (<code>admin-ui\/src<\/code>) in the plugin package.<\/li>\n<li>Hardened the <code>the_content<\/code> JSON-LD schema output with <code>JSON_HEX_*<\/code> escaping.<\/li>\n<li>Restricted the <code>orders\/{id}\/payment-status<\/code> REST endpoint to users with the <code>manage_restrohub<\/code> capability and a valid <code>wp_rest<\/code> nonce.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Renamed plugin to SavorPilot.<\/li>\n<li>Replaced external QR API with self-hosted SVG QR generation.<\/li>\n<li>Moved receipt styles to an enqueued CSS file.<\/li>\n<li>Added nonce checks to public REST endpoints.<\/li>\n<li>Documented optional Stripe external service.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with menus, dishes, ordering, table booking, floor plan, QR ordering, inventory and reports.<\/li>\n<\/ul>","raw_excerpt":"A commission-free WordPress restaurant platform for menus, online ordering, table booking, floor plans, QR ordering and inventory.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/351326","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=351326"}],"author":[{"embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mrshahbaznns"}],"wp:attachment":[{"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=351326"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=351326"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=351326"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=351326"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=351326"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ka.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=351326"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}