{"id":90988,"date":"2018-09-10T08:34:22","date_gmt":"2018-09-10T08:34:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/restropress\/"},"modified":"2026-06-23T18:12:59","modified_gmt":"2026-06-23T18:12:59","slug":"restropress","status":"publish","type":"plugin","link":"https:\/\/kk.wordpress.org\/plugins\/restropress\/","author":13997121,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.3","stable_tag":"3.3","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"RestroPress","header_author":"MagniGenie","header_description":"Restaurant food ordering system for WordPress","assets_banners_color":"9ad0e7","last_updated":"2026-06-23 18:12:59","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/paypal.me\/magnigeeks","header_plugin_uri":"https:\/\/www.restropress.com","header_author_uri":"https:\/\/magnigenie.com","rating":4.4,"author_block_rating":0,"active_installs":1000,"downloads":158653,"num_ratings":102,"support_threads":1,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0":{"tag":"2.0","author":"Magnigenie","date":"2019-03-09 14:38:14"},"2.0.1":{"tag":"2.0.1","author":"Magnigenie","date":"2019-03-23 14:13:03"},"2.0.2":{"tag":"2.0.2","author":"Magnigenie","date":"2019-04-30 05:23:51"},"2.0.3":{"tag":"2.0.3","author":"kshirod patel","date":"2019-11-15 15:22:21"},"2.0.4":{"tag":"2.0.4","author":"kshirod patel","date":"2019-11-23 06:02:26"},"2.0.5":{"tag":"2.0.5","author":"kshirod patel","date":"2019-12-04 14:03:26"},"2.0.6":{"tag":"2.0.6","author":"kshirod patel","date":"2019-12-28 06:01:53"},"2.0.7":{"tag":"2.0.7","author":"kshirod patel","date":"2020-02-07 13:59:16"},"2.0.8":{"tag":"2.0.8","author":"kshirod patel","date":"2020-03-19 10:18:30"},"2.0.9":{"tag":"2.0.9","author":"Magnigenie","date":"2020-03-25 15:40:31"},"2.1":{"tag":"2.1","author":"kshirod patel","date":"2020-03-26 15:55:14"},"2.2":{"tag":"2.2","author":"kshirod patel","date":"2020-03-27 12:18:23"},"2.2.1":{"tag":"2.2.1","author":"kshirod patel","date":"2020-03-29 11:49:18"},"2.2.2":{"tag":"2.2.2","author":"kshirod patel","date":"2020-03-30 15:35:19"},"2.2.3":{"tag":"2.2.3","author":"kshirod patel","date":"2020-03-31 14:47:05"},"2.2.4":{"tag":"2.2.4","author":"kshirod patel","date":"2020-04-02 15:52:58"},"2.3":{"tag":"2.3","author":"kshirod patel","date":"2020-04-06 15:31:42"},"2.3.1":{"tag":"2.3.1","author":"kshirod patel","date":"2020-04-07 11:12:45"},"2.3.2":{"tag":"2.3.2","author":"Magnigenie","date":"2020-04-12 00:19:33"},"2.3.3":{"tag":"2.3.3","author":"Magnigenie","date":"2020-04-12 00:19:33"},"2.3.4":{"tag":"2.3.4","author":"Magnigenie","date":"2020-04-18 05:09:04"},"2.4":{"tag":"2.4","author":"Magnigenie","date":"2020-04-21 23:19:26"},"2.4.1":{"tag":"2.4.1","author":"Magnigenie","date":"2020-04-28 13:36:02"},"2.5":{"tag":"2.5","author":"Magnigenie","date":"2020-05-13 09:57:15"},"2.5.1":{"tag":"2.5.1","author":"Magnigenie","date":"2020-05-14 19:03:04"},"2.5.2":{"tag":"2.5.2","author":"Magnigenie","date":"2020-05-23 13:47:00"},"2.5.3":{"tag":"2.5.3","author":"Magnigenie","date":"2020-05-30 14:09:29"},"2.6":{"tag":"2.6","author":"Magnigenie","date":"2020-07-06 12:39:57"},"2.6.1":{"tag":"2.6.1","author":"Magnigenie","date":"2020-08-18 03:25:36"},"2.6.2":{"tag":"2.6.2","author":"Magnigenie","date":"2020-09-09 06:49:38"},"2.6.3":{"tag":"2.6.3","author":"sagarseth9","date":"2020-10-22 06:27:35"},"2.6.3.1":{"tag":"2.6.3.1","author":"sagarseth9","date":"2020-12-04 08:51:17"},"2.6.3.2":{"tag":"2.6.3.2","author":"sagarseth9","date":"2021-01-14 18:44:54"},"2.7":{"tag":"2.7","author":"sagarseth9","date":"2021-01-14 18:44:54"},"2.7.1":{"tag":"2.7.1","author":"sagarseth9","date":"2021-01-18 14:25:45"},"2.7.2":{"tag":"2.7.2","author":"sagarseth9","date":"2021-02-04 14:04:56"},"2.7.2.1":{"tag":"2.7.2.1","author":"sagarseth9","date":"2021-03-17 02:12:27"},"2.8":{"tag":"2.8","author":"sagarseth9","date":"2021-05-20 23:57:40"},"2.8.1":{"tag":"2.8.1","author":"sagarseth9","date":"2021-05-25 23:45:33"},"2.8.2":{"tag":"2.8.2","author":"sagarseth9","date":"2021-05-31 13:02:39"},"2.8.3":{"tag":"2.8.3","author":"sagarseth9","date":"2021-07-10 14:56:19"},"2.8.3.1":{"tag":"2.8.3.1","author":"sagarseth9","date":"2021-07-15 01:48:56"},"2.8.3.2":{"tag":"2.8.3.2","author":"sagarseth9","date":"2021-07-21 04:16:52"},"2.8.4":{"tag":"2.8.4","author":"Magnigenie","date":"2021-08-09 09:02:32"},"2.8.5":{"tag":"2.8.5","author":"sagarseth9","date":"2022-02-01 03:56:53"},"2.9":{"tag":"2.9","author":"sagarseth9","date":"2022-05-03 10:14:05"},"2.9.1":{"tag":"2.9.1","author":"sagarseth9","date":"2022-05-13 02:28:55"},"2.9.2":{"tag":"2.9.2","author":"Magnigenie","date":"2022-11-12 08:13:57"},"2.9.3":{"tag":"2.9.3","author":"Magnigenie","date":"2022-11-22 12:28:24"},"2.9.4":{"tag":"2.9.4","author":"Magnigenie","date":"2022-11-26 15:44:02"},"2.9.5":{"tag":"2.9.5","author":"Magnigenie","date":"2022-12-12 12:15:15"},"2.9.6":{"tag":"2.9.6","author":"Magnigenie","date":"2023-04-06 05:15:03"},"2.9.7":{"tag":"2.9.7","author":"Magnigenie","date":"2023-09-15 15:15:29"},"2.9.8":{"tag":"2.9.8","author":"Magnigenie","date":"2023-11-17 19:22:08"},"3.0.0":{"tag":"3.0.0","author":"Magnigenie","date":"2024-01-09 05:40:59"},"3.1":{"tag":"3.1","author":"Magnigenie","date":"2024-02-29 16:45:01"},"3.1.1":{"tag":"3.1.1","author":"Magnigenie","date":"2024-03-01 10:53:03"},"3.1.1.1":{"tag":"3.1.1.1","author":"Magnigenie","date":"2024-03-02 03:11:12"},"3.1.2":{"tag":"3.1.2","author":"Magnigenie","date":"2024-03-06 12:30:40"},"3.1.2.1":{"tag":"3.1.2.1","author":"Magnigenie","date":"2024-03-09 08:22:10"},"3.1.2.2":{"tag":"3.1.2.2","author":"Magnigenie","date":"2024-03-16 08:37:53"},"3.1.3":{"tag":"3.1.3","author":"Magnigenie","date":"2024-03-27 11:06:31"},"3.1.4":{"tag":"3.1.4","author":"Magnigenie","date":"2024-04-10 13:51:22"},"3.1.5":{"tag":"3.1.5","author":"Magnigenie","date":"2024-05-03 06:37:28"},"3.1.5.1":{"tag":"3.1.5.1","author":"Magnigenie","date":"2024-05-17 14:34:52"},"3.1.5.2":{"tag":"3.1.5.2","author":"Magnigenie","date":"2024-05-25 06:39:30"},"3.1.5.3":{"tag":"3.1.5.3","author":"Magnigenie","date":"2024-05-25 13:57:03"},"3.1.5.4":{"tag":"3.1.5.4","author":"Magnigenie","date":"2024-05-27 14:10:28"},"3.1.6":{"tag":"3.1.6","author":"Magnigenie","date":"2024-06-04 09:53:56"},"3.1.7":{"tag":"3.1.7","author":"Magnigenie","date":"2024-07-17 07:16:06"},"3.1.8":{"tag":"3.1.8","author":"Magnigenie","date":"2024-09-16 12:11:44"},"3.1.8.1":{"tag":"3.1.8.1","author":"Magnigenie","date":"2024-09-18 12:24:41"},"3.1.8.2":{"tag":"3.1.8.2","author":"Magnigenie","date":"2024-10-03 11:28:51"},"3.1.8.3":{"tag":"3.1.8.3","author":"Magnigenie","date":"2024-11-27 13:44:50"},"3.1.8.4":{"tag":"3.1.8.4","author":"sagarseth9","date":"2025-05-29 08:00:33"},"3.1.9":{"tag":"3.1.9","author":"Magnigenie","date":"2025-06-13 10:51:55"},"3.1.9.2":{"tag":"3.1.9.2","author":"Magnigenie","date":"2025-08-04 15:51:43"},"3.2":{"tag":"3.2","author":"Magnigenie","date":"2025-09-23 04:56:23"},"3.2.1":{"tag":"3.2.1","author":"Magnigenie","date":"2025-10-02 07:23:16"},"3.2.2":{"tag":"3.2.2","author":"Magnigenie","date":"2025-10-11 15:17:05"},"3.2.3.6":{"tag":"3.2.3.6","author":"Magnigenie","date":"2025-11-20 20:09:43"},"3.2.4":{"tag":"3.2.4","author":"Magnigenie","date":"2025-12-05 13:46:34"},"3.2.5":{"tag":"3.2.5","author":"Magnigenie","date":"2026-02-26 07:29:01"},"3.2.6":{"tag":"3.2.6","author":"Magnigenie","date":"2026-03-09 14:15:14"},"3.2.7":{"tag":"3.2.7","author":"Magnigenie","date":"2026-03-09 14:15:14"},"3.2.8":{"tag":"3.2.8","author":"Magnigenie","date":"2026-03-12 21:29:08"},"3.2.8.1":{"tag":"3.2.8.1","author":"Magnigenie","date":"2026-03-25 07:04:29"},"3.2.8.2":{"tag":"3.2.8.2","author":"Magnigenie","date":"2026-03-25 15:31:16"},"3.2.8.3":{"tag":"3.2.8.3","author":"Magnigenie","date":"2026-03-26 19:30:48"},"3.2.8.4":{"tag":"3.2.8.4","author":"Magnigenie","date":"2026-03-28 15:13:08"},"3.2.8.4.1":{"tag":"3.2.8.4.1","author":"Magnigenie","date":"2026-04-06 14:08:11"},"3.2.8.5":{"tag":"3.2.8.5","author":"Magnigenie","date":"2026-04-08 11:34:54"},"3.2.8.6":{"tag":"3.2.8.6","author":"Magnigenie","date":"2026-04-11 16:16:48"},"3.2.8.6.1":{"tag":"3.2.8.6.1","author":"Magnigenie","date":"2026-04-14 11:15:59"},"3.2.8.6.2.1":{"tag":"3.2.8.6.2.1","author":"Magnigenie","date":"2026-05-10 06:38:34"},"3.2.8.7":{"tag":"3.2.8.7","author":"Magnigenie","date":"2026-05-10 06:38:34"},"3.2.8.8":{"tag":"3.2.8.8","author":"Magnigenie","date":"2026-05-12 15:05:02"},"3.2.8.8.1":{"tag":"3.2.8.8.1","author":"Magnigenie","date":"2026-05-21 07:52:15"},"3.2.8.8.5":{"tag":"3.2.8.8.5","author":"Magnigenie","date":"2026-06-03 04:55:03"},"3.2.8.8.6":{"tag":"3.2.8.8.6","author":"Magnigenie","date":"2026-06-03 18:49:03"},"3.3":{"tag":"3.3","author":"Magnigenie","date":"2026-06-23 18:12:59"}},"upgrade_notice":{"3.3":"<p>A major update: a guided setup wizard with AI menu import, a real time Live Orders board, a redesigned Dashboard and Orders screen, a built-in Sold Out toggle, dietary labels on your menu, and faster Reports. &quot;Food Items&quot; is now labelled &quot;Menu Items&quot; throughout the admin (your links, shortcodes, and data keep working). Please back up your site before upgrading.<\/p>","3.2.8.8.6":"","3.2.8.8.1":"<p>Please backup your website before upgrading to the latest version.<\/p>"},"ratings":{"1":14,"2":2,"3":1,"4":2,"5":83},"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3216477,"resolution":"128x128","location":"assets","locale":"","width":256,"height":256},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3216477,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3581982,"resolution":"772x250","location":"assets","locale":"","width":3088,"height":1000}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8","2.0.9","2.1","2.2","2.2.1","2.2.2","2.2.3","2.2.4","2.3","2.3.1","2.3.2","2.3.3","2.3.4","2.4","2.4.1","2.5","2.5.1","2.5.2","2.5.3","2.6","2.6.1","2.6.2","2.6.3","2.6.3.1","2.6.3.2","2.7","2.7.1","2.7.2","2.7.2.1","2.8","2.8.1","2.8.2","2.8.3","2.8.3.1","2.8.3.2","2.8.4","2.8.5","2.9","2.9.1","2.9.2","2.9.3","2.9.4","2.9.5","2.9.6","2.9.7","2.9.8","3.0.0","3.1","3.1.1","3.1.1.1","3.1.2","3.1.2.1","3.1.2.2","3.1.3","3.1.4","3.1.5","3.1.5.1","3.1.5.2","3.1.5.3","3.1.5.4","3.1.6","3.1.7","3.1.8","3.1.8.1","3.1.8.2","3.1.8.3","3.1.8.4","3.1.9","3.1.9.2","3.2","3.2.1","3.2.2","3.2.3.6","3.2.4","3.2.5","3.2.6","3.2.7","3.2.8","3.2.8.1","3.2.8.2","3.2.8.3","3.2.8.4","3.2.8.4.1","3.2.8.5","3.2.8.6","3.2.8.6.1","3.2.8.6.2.1","3.2.8.7","3.2.8.8","3.2.8.8.1","3.2.8.8.5","3.2.8.8.6","3.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3585872,"resolution":"1","location":"assets","locale":"","width":1691,"height":930},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3585872,"resolution":"10","location":"assets","locale":"","width":1691,"height":930},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3585872,"resolution":"2","location":"assets","locale":"","width":1691,"height":930},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3585872,"resolution":"3","location":"assets","locale":"","width":1690,"height":931},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3585872,"resolution":"4","location":"assets","locale":"","width":1691,"height":930},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3585872,"resolution":"5","location":"assets","locale":"","width":1692,"height":930},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3585872,"resolution":"6","location":"assets","locale":"","width":1691,"height":930},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3585872,"resolution":"7","location":"assets","locale":"","width":1691,"height":930},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3585872,"resolution":"8","location":"assets","locale":"","width":1690,"height":931},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3585872,"resolution":"9","location":"assets","locale":"","width":1691,"height":930}},"screenshots":{"1":"Guided onboarding wizard with AI menu import, for a setup in minutes.","2":"Live Orders board: a real time view of every active order from new to out for delivery.","3":"Command Center dashboard with store status, live load, late orders, and the priority queue.","4":"Section based food item editor with add-ons, modifiers, and variable pricing.","5":"Mobile responsive storefront menu with pickup, delivery, and dine-in.","6":"Streamlined checkout with built in payment options.","7":"Order details with status workflow and a printable kitchen ticket."}},"plugin_section":[262246],"plugin_tags":[149734,43684,23280,183700,142625],"plugin_category":[],"plugin_contributors":[204684,141301,78263,78262],"plugin_business_model":[],"class_list":["post-90988","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-food-delivery","plugin_tags-online-ordering","plugin_tags-restaurant-menu","plugin_tags-restaurant-ordering","plugin_tags-takeaway","plugin_contributors-bibhu1995","plugin_contributors-kshirod-patel","plugin_contributors-magnigenie","plugin_contributors-sagarseth9","plugin_committers-magnigenie","plugin_committers-sagarseth9","plugin_support_reps-bibhu1995"],"banners":{"banner":"https:\/\/ps.w.org\/restropress\/assets\/banner-772x250.png?rev=3581982","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/restropress\/assets\/icon-128x128.gif?rev=3216477","icon_2x":"https:\/\/ps.w.org\/restropress\/assets\/icon-256x256.gif?rev=3216477","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/restropress\/assets\/screenshot-1.png?rev=3585872","caption":"Guided onboarding wizard with AI menu import, for a setup in minutes."},{"src":"https:\/\/ps.w.org\/restropress\/assets\/screenshot-2.png?rev=3585872","caption":"Live Orders board: a real time view of every active order from new to out for delivery."},{"src":"https:\/\/ps.w.org\/restropress\/assets\/screenshot-3.png?rev=3585872","caption":"Command Center dashboard with store status, live load, late orders, and the priority queue."},{"src":"https:\/\/ps.w.org\/restropress\/assets\/screenshot-4.png?rev=3585872","caption":"Section based food item editor with add-ons, modifiers, and variable pricing."},{"src":"https:\/\/ps.w.org\/restropress\/assets\/screenshot-5.png?rev=3585872","caption":"Mobile responsive storefront menu with pickup, delivery, and dine-in."},{"src":"https:\/\/ps.w.org\/restropress\/assets\/screenshot-6.png?rev=3585872","caption":"Streamlined checkout with built in payment options."},{"src":"https:\/\/ps.w.org\/restropress\/assets\/screenshot-7.png?rev=3585872","caption":"Order details with status workflow and a printable kitchen ticket."},{"src":"https:\/\/ps.w.org\/restropress\/assets\/screenshot-8.png?rev=3585872","caption":""},{"src":"https:\/\/ps.w.org\/restropress\/assets\/screenshot-9.png?rev=3585872","caption":""},{"src":"https:\/\/ps.w.org\/restropress\/assets\/screenshot-10.png?rev=3585872","caption":""}],"raw_content":"<!--section=description-->\n<p><strong>RestroPress turns your WordPress site into a complete online food ordering system, so you keep 100% of every order.<\/strong><\/p>\n\n<p>No commissions. No per order fees. No WooCommerce required. Restaurants, cloud kitchens, cafes, and food businesses use RestroPress to take pickup, delivery, and dine-in orders directly on their own website and pay nothing to third party apps.<\/p>\n\n<p>Set up your menu in minutes with the new AI powered onboarding wizard, then run your whole service from one live dashboard.<\/p>\n\n<p><a href=\"https:\/\/demo.restropress.com\">Try the live demo<\/a> or <a href=\"https:\/\/www.youtube.com\/watch?v=CGVpXYw6JDQ\">watch the 2 minute video<\/a>.<\/p>\n\n<h4>Why restaurants switch to RestroPress<\/h4>\n\n<ul>\n<li><strong>Keep everything you earn.<\/strong> Third party platforms can take 15% to 30% of every order. RestroPress takes 0%.<\/li>\n<li><strong>Own your customers and your data.<\/strong> Orders, contacts, and history stay on your site, not on someone else's app.<\/li>\n<li><strong>No WooCommerce, no bloat.<\/strong> A fast, standalone ordering system built only for food.<\/li>\n<li><strong>Live from day one.<\/strong> A guided setup wizard and AI menu import get you taking orders the same afternoon.<\/li>\n<\/ul>\n\n<h4>Set up in minutes, not days (new in 3.3)<\/h4>\n\n<ul>\n<li><strong>AI menu import.<\/strong> Upload a PDF, a photo, or a spreadsheet of your menu and let AI turn it into items, prices, sizes, and add-ons for you to review.<\/li>\n<li><strong>Guided onboarding wizard.<\/strong> Simple step by step setup for your restaurant profile, menu, service options, and payments.<\/li>\n<li><strong>Smart upload checks.<\/strong> If you upload something that is not a menu, RestroPress tells you before it imports anything.<\/li>\n<\/ul>\n\n<h4>Run your whole service from one screen<\/h4>\n\n<ul>\n<li><strong>Live Orders board.<\/strong> A real time view of new, accepted, preparing, ready, and out for delivery orders.<\/li>\n<li><strong>Command Center dashboard.<\/strong> See store status, live load, late orders, unpaid orders, and a priority queue of what needs attention right now.<\/li>\n<li><strong>Automatic kitchen ticket printing.<\/strong> Send new orders straight to your printer.<\/li>\n<li><strong>Kitchen Display System.<\/strong> Keep the kitchen in sync with the KDS app.<\/li>\n<\/ul>\n\n<h4>Take orders the way your customers want<\/h4>\n\n<ul>\n<li>Pickup, delivery, and dine-in, all from one menu.<\/li>\n<li>QR code table ordering with the Dine-In extension.<\/li>\n<li>Scheduled orders and pre orders for later pickup or delivery.<\/li>\n<li>Delivery fees and zones based on location.<\/li>\n<\/ul>\n\n<h4>Get paid your way<\/h4>\n\n<ul>\n<li>PayPal, Stripe, and Cash on Delivery built in.<\/li>\n<li>Many more gateways available as extensions, including Square, Mollie, Paytm, PayU, and PhonePe.<\/li>\n<li>Premium POS integrations with Clover and Square for in store payments.<\/li>\n<\/ul>\n\n<h4>Everything you need, out of the box<\/h4>\n\n<ul>\n<li>Unlimited orders on every site, always free.<\/li>\n<li>Customizable menus with categories, add-ons, modifiers, and variable pricing.<\/li>\n<li>Veg, non-veg, and dietary labels on the storefront.<\/li>\n<li>Customer accounts with order history and one tap reorder.<\/li>\n<li>Automatic creation of cart, checkout, and account pages.<\/li>\n<li>Mobile responsive storefront that looks great on any device.<\/li>\n<li>Email, SMS, and WhatsApp notifications (via extensions) for customers and staff.<\/li>\n<li>Full REST API to build your own apps and integrations.<\/li>\n<li>Translation ready, with Italian and Dutch bundled and more from the community.<\/li>\n<\/ul>\n\n<h4>Who is it for<\/h4>\n\n<ul>\n<li>Restaurants, cafes, and cloud kitchens<\/li>\n<li>Takeaway and takeout businesses<\/li>\n<li>Pizza shops, burger joints, and bakeries<\/li>\n<li>Grocery, fruit and vegetable, and specialty food stores<\/li>\n<\/ul>\n\n<h4>Grow with extensions and apps<\/h4>\n\n<ul>\n<li><strong>Customer App<\/strong> for a branded ordering experience<\/li>\n<li><strong>Driver App<\/strong> to manage your delivery team<\/li>\n<li><strong>Order Tracking App<\/strong> for real time updates<\/li>\n<li><strong>KDS App<\/strong> for the kitchen<\/li>\n<li><strong>POS for mobile and desktop<\/strong> to handle in store and online orders in one place<\/li>\n<li><strong>Dine-In, Multi Location, Inventory, Tips, Pre Order, and Time Based Menu<\/strong>, plus many more<\/li>\n<\/ul>\n\n<p><a href=\"https:\/\/restropress.com\/extension\/\">Explore all extensions<\/a><\/p>\n\n<h4>Built for developers<\/h4>\n\n<p>RestroPress ships with a full REST API (since version 3.0) so you can build custom apps, kiosks, and integrations on top of your ordering system. <a href=\"https:\/\/docs.restropress.com\/docs\/rest-api\/authentication\/\">Read the REST API docs<\/a>.<\/p>\n\n<h4>Get started today<\/h4>\n\n<p>Take control of your online ordering and stop paying commissions. <a href=\"https:\/\/wordpress.org\/plugins\/restropress\/\">Download RestroPress<\/a> and start taking orders today.<\/p>\n\n<p><a href=\"https:\/\/restropress.com\">Website<\/a> | <a href=\"https:\/\/docs.restropress.com\">Documentation<\/a> | <a href=\"https:\/\/demo.restropress.com\">Live demo<\/a> | <a href=\"https:\/\/facebook.com\/groups\/restropress.official\">Facebook group<\/a> | <a href=\"https:\/\/www.youtube.com\/@restropress\">YouTube<\/a><\/p>\n\n<h3>License<\/h3>\n\n<p>This program is free software; you can redistribute it and\/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\nFor full details, please visit http:\/\/www.gnu.org\/licenses\/gpl-2.0.html\nFor more information and support, visit the <a href=\"https:\/\/www.restropress.com\/\">RestroPress website<\/a>.<\/p>\n\n<!--section=installation-->\n<p>RestroPress sets itself up in minutes.<\/p>\n\n<ol>\n<li>In your WordPress admin, go to Plugins, then Add New, and search for \"RestroPress\".<\/li>\n<li>Click Install Now, then Activate.<\/li>\n<li>Follow the guided setup wizard to add your restaurant details, import your menu (PDF, photo, spreadsheet, or AI import), choose pickup and delivery options, and connect payments.<\/li>\n<li>Your cart, checkout, and account pages are created for you. Add the menu to any page and start taking orders.<\/li>\n<\/ol>\n\n<p>Prefer a manual install:<\/p>\n\n<ol>\n<li>Download the plugin zip from WordPress.org.<\/li>\n<li>Go to Plugins, Add New, Upload Plugin, and choose the zip.<\/li>\n<li>Install, activate, and run the setup wizard.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20restropress%20charge%20any%20commission%20or%20per%20order%20fees%3F\"><h3>Does RestroPress charge any commission or per order fees?<\/h3><\/dt>\n<dd><p>No. RestroPress is commission free. You keep 100% of every order. There are no per order fees and no forced subscription to take orders.<\/p><\/dd>\n<dt id=\"do%20i%20need%20woocommerce%3F\"><h3>Do I need WooCommerce?<\/h3><\/dt>\n<dd><p>No. RestroPress is a standalone food ordering system. It does not require WooCommerce or any other ecommerce plugin.<\/p><\/dd>\n<dt id=\"which%20payment%20methods%20are%20supported%3F\"><h3>Which payment methods are supported?<\/h3><\/dt>\n<dd><p>PayPal, Stripe, and Cash on Delivery are built in. Many more gateways are available as extensions, including Square, Mollie, Paytm, PayU, and PhonePe.<\/p><\/dd>\n<dt id=\"can%20i%20offer%20pickup%2C%20delivery%2C%20and%20dine-in%3F\"><h3>Can I offer pickup, delivery, and dine-in?<\/h3><\/dt>\n<dd><p>Yes. Pickup and delivery work out of the box, and you can add QR code dine-in ordering with the Dine-In extension.<\/p><\/dd>\n<dt id=\"can%20customers%20schedule%20orders%20for%20later%3F\"><h3>Can customers schedule orders for later?<\/h3><\/dt>\n<dd><p>Yes. Customers can place orders for a future date and time, for both pickup and delivery.<\/p><\/dd>\n<dt id=\"is%20there%20a%20limit%20on%20the%20number%20of%20orders%3F\"><h3>Is there a limit on the number of orders?<\/h3><\/dt>\n<dd><p>No. RestroPress supports unlimited orders on every site, for free.<\/p><\/dd>\n<dt id=\"can%20i%20import%20my%20existing%20menu%3F\"><h3>Can I import my existing menu?<\/h3><\/dt>\n<dd><p>Yes. Use the AI menu import to upload a PDF, photo, or spreadsheet, or import a CSV directly. You review everything before it goes live.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20mobile%3F\"><h3>Does it work on mobile?<\/h3><\/dt>\n<dd><p>Yes. The storefront is fully mobile responsive, and dedicated customer, driver, and order tracking apps are available.<\/p><\/dd>\n<dt id=\"can%20i%20run%20more%20than%20one%20location%3F\"><h3>Can I run more than one location?<\/h3><\/dt>\n<dd><p>Yes, with the Multi Location extension.<\/p><\/dd>\n<dt id=\"is%20restropress%20translation%20ready%3F\"><h3>Is RestroPress translation ready?<\/h3><\/dt>\n<dd><p>Yes. RestroPress is fully translation ready and ships with Italian and Dutch translations, with more available from the community.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20help%3F\"><h3>Where can I get help?<\/h3><\/dt>\n<dd><p>Read the <a href=\"https:\/\/docs.restropress.com\">documentation<\/a>, join the <a href=\"https:\/\/facebook.com\/groups\/restropress.official\">Facebook community<\/a>, or open a thread in the WordPress.org support forum.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>Version 3.3 (2026-06-11)<\/h4>\n\n<p>RestroPress 3.3 is a major update: a guided setup wizard with AI menu import, a real time Live Orders board, a redesigned operations Dashboard, a cleaner Orders screen and order editor, dietary labels on your menu, faster Reports, and easier menu import and export.<\/p>\n\n<ul>\n<li><strong>Guided setup wizard with AI menu import<\/strong>\n\n<ul>\n<li>New step by step setup (restaurant profile, menu, how you sell, payments, go live) with a live preview of your storefront as you build it.<\/li>\n<li>AI menu import: upload a PDF, photo, or spreadsheet and AI reads it into items, prices, sizes, and add-ons for you to review before publishing. Works with built-in WordPress AI, OpenAI, or Google Gemini.<\/li>\n<li>One-click sample menus (Cafe &amp; Bakery, Pizzeria, Burger Diner, Healthy Kitchen) to get started instantly, plus a manual build option.<\/li>\n<li>RestroPress now warns you when an uploaded file does not look like a menu, before it imports anything.<\/li>\n<\/ul><\/li>\n<li><strong>Live Orders board (new)<\/strong>\n\n<ul>\n<li>A real time board of every active order across columns: New, Accepted, Preparing, Ready, and Out for Delivery.<\/li>\n<li>New orders slide in with a sound alert and a flashing browser tab so busy staff never miss one.<\/li>\n<li>Drag a card to another column to change its status, or use the single clear next-step button (Accept, Start, Ready, Dispatch, Complete).<\/li>\n<li>Filter by Pickup, Delivery, or Dine-in. The board refreshes on its own, and an optional setting makes Live Orders the default Orders view.<\/li>\n<\/ul><\/li>\n<li><strong>Redesigned Dashboard<\/strong>\n\n<ul>\n<li>The Dashboard is now an operations command center built for restaurant managers: store status, live order load, late orders, unpaid orders, and a priority queue of what needs attention right now.<\/li>\n<li>Panels refresh automatically every 30 seconds.<\/li>\n<\/ul><\/li>\n<li><strong>Redesigned Orders screen<\/strong>\n\n<ul>\n<li>Cleaner list with click-to-change status pills (no page reload), date shortcut chips, a \"time since ordered\" label, and a sticky header.<\/li>\n<li>Switches automatically between a Today operations view and a Past Orders view with sales totals when you pick a date range.<\/li>\n<li>Revenue now counts cash orders correctly, refunds show clearly in red, and customer phone numbers can be masked to the last 4 digits for screens in public view.<\/li>\n<\/ul><\/li>\n<li><strong>Redesigned order details<\/strong>\n\n<ul>\n<li>A clearer single-order screen: summary cards, a fulfilment status track with a one-click next step, a notes timeline, and billing details.<\/li>\n<li>Edit order items (sizes, add-ons, quantities) right on the page, with the total kept in sync automatically.<\/li>\n<\/ul><\/li>\n<li><strong>Smarter menu item editor<\/strong>\n\n<ul>\n<li>A cleaner, section-based editor with separate short (menu card) and full (order popup) descriptions, combined Category, Tags &amp; Dietary, and a redesigned add-ons area.<\/li>\n<li>Built-in availability toggle: mark an item Sold Out from the editor or the list with no extra extension needed. Sold-out items show a clear badge on your storefront.<\/li>\n<\/ul><\/li>\n<li><strong>Dietary labels and food type<\/strong>\n\n<ul>\n<li>New dietary labels (Vegetarian, Vegan, Gluten-free, Dairy-free, Nut-free, Halal, Kosher, Spicy) that you set per item and that now show as chips on your storefront menu.<\/li>\n<li>Veg \/ Non-veg marks are now an optional setting, aimed at India and similar markets.<\/li>\n<\/ul><\/li>\n<li><strong>Faster, clearer Reports<\/strong>\n\n<ul>\n<li>Reports rebuilt into focused views: Overview, Sales, Orders &amp; Risk, Menu, Customers, Payments &amp; Recovery, Taxes, and Export, each with a previous-period comparison.<\/li>\n<li>Revenue and late-order numbers now agree across the Dashboard, Orders, and Reports.<\/li>\n<li>Reports load much faster on large stores.<\/li>\n<\/ul><\/li>\n<li><strong>Easier menu import and export<\/strong>\n\n<ul>\n<li>Menu import is now a permanent screen at Menu Items &gt; Import (AI, spreadsheet, or sample menu), not just a one-time onboarding step.<\/li>\n<li>Menu export lets you pick exactly which columns to include and produces a clean, readable CSV that imports straight back in.<\/li>\n<li>Settings import and export moved to Settings &gt; Misc, and Tools is now focused on maintenance only.<\/li>\n<\/ul><\/li>\n<li><strong>Clearer new-order alerts<\/strong>\n\n<ul>\n<li>A loud built-in alert sound now ships by default, so new-order notifications are no longer silent until you upload your own.<\/li>\n<li>Clearer guidance on how desktop alerts work, plus more reliable playback.<\/li>\n<\/ul><\/li>\n<li><strong>Renamed for clarity<\/strong>\n\n<ul>\n<li>\"Food Items\" is now \"Menu Items\" throughout the admin. Your URLs, shortcodes, and data are unchanged.<\/li>\n<li>\"Add-on Category\" is now \"Add-on Group\" (sometimes called a modifier group in POS systems). Only the labels changed.<\/li>\n<\/ul><\/li>\n<li><strong>Fixes and improvements<\/strong>\n\n<ul>\n<li>Fixed: fixed-price items no longer switch themselves to variable pricing when saved.<\/li>\n<li>Fixed: the setup wizard now saves your chosen service type (Pickup, Delivery, or both) instead of always storing \"Pickup only\".<\/li>\n<li>Fixed: finishing setup no longer puts your store into payment test mode by mistake.<\/li>\n<li>Fixed: a storefront and dashboard crash when a store's opening and closing times were equal or inverted.<\/li>\n<li>Fixed: menu item tags could show twice on a storefront card in one layout; they now show once.<\/li>\n<li>Fixed: the print icon in the order quick-view is now aligned with its label.<\/li>\n<li>Improved: Live Orders cards show the customer phone correctly, add-on and category names with apostrophes no longer break, and many smaller admin polish fixes.<\/li>\n<\/ul><\/li>\n<li><strong>For developers<\/strong>\n\n<ul>\n<li>New food item editor section hooks and a Live Orders extension surface (columns, time window, query args) let add-ons plug into the redesigned screens.<\/li>\n<li>Order count, late-order, and cash-gateway logic is now shared and filterable for consistency across screens.<\/li>\n<li>Full REST API support continues for building custom apps and integrations.<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>Version 3.2.8.8.6(2026-06-09)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.8.6<\/li>\n<li>Fixed: Email template order notes now strip encoded HTML tags before rendering so labels such as <code>&lt;strong&gt;<\/code> no longer show in <code>{order_note}<\/code>.<\/li>\n<li>Fixed: Special instruction labels in food item email lists now render bold markup without exposing raw <code>&lt;strong&gt;<\/code> tags.<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.8.5(2026-06-03)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.8.5<\/li>\n<li>Fixed: Core service date handling now follows the configured WordPress timezone and date format across order-online, checkout, order details, and receipts.<\/li>\n<li>Fixed: Closed-store order-online summaries now show the configured store closed message instead of being overwritten by a stale selected date.<\/li>\n<li>Fixed: Selected service date\/time cookies now stay synchronized and no longer change the customer-selected schedule between listing, checkout, and confirmation views.<\/li>\n<li>Fixed: Service date\/time selections are no longer cleared from cached old UI menu pages when a stale cart count is rendered.<\/li>\n<li>Fixed: Checkout now submits and saves the selected service date\/time from the active checkout controls before falling back to cookies.<\/li>\n<li>Fixed: Cart-empty actions now clear the complete service selection cookie set to avoid stale confirmation data.<\/li>\n<li>Fixed: Old UI schedule popup now shows the resolved service date in core when no Store Timing date selector is injected.<\/li>\n<li>Fixed: Core service date and slot availability now use the WordPress timezone consistently<\/li>\n<li>Fixed: Future pre-order dates are no longer blocked by the current-day closed state when valid future slots exist.<\/li>\n<li>Fixed: Display-format service dates such as d\/m\/Y are parsed safely before slot and order validation.<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.8.1(2026-05-13)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.8.1<\/li>\n<li>Fixed: Delivery schedule now ignores stale\/past service slots instead of falling back to unavailable times.<\/li>\n<li>Improved: Listing cart totals, submit button styles, plain-text button behavior, and checkout coupon field layout.<\/li>\n<li>Added: Cart sidebar fee render filter so extensions can own their own fee display rows.<\/li>\n<li>Fixed: Old UI modal enforcement now reopens service settings on add\/checkout when delivery zip\/address is invalid and blocks stale item-detail popup flow.<\/li>\n<li>Fixed: Cart summary change-link and helper tooltip now render only in Old RestroPress UI\/UX mode and no longer leak into the default UI layout.<\/li>\n<li>Improved: Core frontend\/admin API, export, tax, cart, and payment query handling touched in this patch for safer and more consistent request data processing.<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.8(2026-05-12)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.8<\/li>\n<li>Removed: Amazon Payments gateway and bundled Amazon payment libraries have been removed from core.<\/li>\n<li>Added: Core Stripe payment gateway with hosted Stripe Checkout, test\/live API keys, webhook signing secret, and webhook endpoint instructions.<\/li>\n<li>Fixed: Core Stripe settings and gateway registration now show only when the separate RestroPress Stripe extension is inactive.<\/li>\n<li>Fixed: Core Stripe runtime payment handlers now disable when the RestroPress Stripe extension is active, preventing duplicate Stripe handling.<\/li>\n<li>Fixed: <code>[customer_dashboard]<\/code> login button now links to the RestroPress login shortcode page instead of the default WordPress login screen.<\/li>\n<li>Fixed: Old UI order-settings popup now keeps Store Timing extension date\/time fields in the legacy stacked layout.<\/li>\n<li>Improved: Old UI order-settings date\/time fields and Update action now follow the configured Default Button Style, including Plain Text behavior.<\/li>\n<li>Fixed: Mobile grid-view cart bar now stays sticky at the footer while scrolling instead of shifting to the top\/right side.<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.7(2026-05-09)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.7<\/li>\n<li>Fixed: Cart summary totals and fees now refresh reliably after AJAX cart, service, and gateway changes.<\/li>\n<li>Improved: Mobile cart, service modal, add-button, food-card, and customer-dashboard layouts across responsive breakpoints.<\/li>\n<li>Added: Frontend setting support to show or hide add buttons and trigger add flow from food-card clicks.<\/li>\n<li>Fixed: Food categories without <code>tax_position<\/code> metadata now stay visible in the admin category list.<\/li>\n<li>Added: Currency setting <code>Currency Value Type<\/code> with Round\/Float options, defaulting to Float, and applied the selected value format across backend and frontend currency output.<\/li>\n<li>Added: Default Button Style now supports the new <code>Border Radius<\/code> option for frontend submit buttons.<\/li>\n<li>Fixed: <code>Plain Text<\/code> Default Button Style now makes frontend submit buttons behave like links with no background or border.<\/li>\n<li>Fixed: Frontend submit buttons now inherit the configured dynamic theme color and default button style, excluding food item Add buttons.<\/li>\n<li>Fixed: Checkout cart remove button now uses the configured dynamic color and displays a matching cross icon.<\/li>\n<li>Fixed: Checkout Place Order loader now centers inside the button while submitting.<\/li>\n<li>Improved: <code>[order_history]<\/code> shortcode output with a modernized order-history design, better load-more rows, and mobile responsive fixes.<\/li>\n<li>Improved: Customer dashboard profile, order list, saved-address, and account sections now stack and scale cleanly on mobile.<\/li>\n<li>Fixed: Confirmation page live order statuses now use the updated GIF set for accepted, pending, preparing food, delivered, delivery boy, cancelled, and ready statuses.<\/li>\n<li>Improved: Frontend section backgrounds, labels, links, dashboard controls, checkout panels, order-history cards, and receipt surfaces now inherit dynamic Theme Color tones.<\/li>\n<li>Fixed: Dynamic Theme Color CSS is now scoped to RestroPress frontend elements only, preventing WordPress theme, WordPress element, and third-party plugin color overrides.<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.6.3(2026-05-02)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.6.3<\/li>\n<li>Added: Customer table now includes bulk actions to move customers to trash, restore trashed customers, or delete permanently.<\/li>\n<li>Added: Customer list now shows <code>All<\/code> and <code>Trash<\/code> views with status-aware row actions.<\/li>\n<li>Fixed: Deleting a customer now moves the customer to trash instead of permanently deleting by default.<\/li>\n<li>Improved: Customer notices now include move-to-trash and restore confirmations.<\/li>\n<li>Improved: Existing customer records with matching email are automatically restored when new orders are created for that email.<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.6.2(2026-04-24)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.6.2<\/li>\n<li>Fixed: Food category drag-and-drop reordering now persists reliably on the admin categories list after refresh.<\/li>\n<li>Fixed: Prevented addon-category sorting scripts from attaching on food-category taxonomy screens and overriding reorder AJAX actions.<\/li>\n<li>Improved: Food-category admin ordering flow now consistently loads sortable assets, validates AJAX requests, and applies saved <code>tax_position<\/code> ordering.<\/li>\n<li>Updated: RestroPress docs links in admin\/readme now point to the current docs URL.<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.6.1(2026-04-14)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.6.1<\/li>\n<li>Security: Escaped <code>rpress_receipt<\/code> shortcode <code>error<\/code> output to prevent stored XSS payload execution.<\/li>\n<li>Security: Escaped Orders admin payment-history links generated from query arguments to prevent reflected admin XSS via crafted URLs.<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.6(2026-04-10)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.6<\/li>\n<li>Fixed: Mobile\/tablet order-online layout alignment for service buttons, search input, and summary row (date\/time\/Edit) rendering.<\/li>\n<li>Fixed: Checkout Place Order button now follows full input width for responsive views.<\/li>\n<li>Fixed: Checkout total row alignment to keep total label\/amount consistent with form\/button edges.<\/li>\n<li>Improved: Theme-color sync for service-type selected states and key checkout actions (including discount\/apply and update actions).<\/li>\n<li>Improved: Quantity +\/- controls in item popup now keep neutral background and hover behavior while using theme color on border\/radius outline only.<\/li>\n<li>Fixed: Mobile list-view circle add button now keeps a perfect circular shape with centered icon rendering.<\/li>\n<li>Fixed: Checkout Delivery\/Pickup tabs on mobile now maintain consistent tab height and full-width active background fill.<\/li>\n<li>Fixed: Sticky category overlap layering issue in list\/grid navigation.<\/li>\n<li>Fixed: Admin orders list\/count filters now stay synchronized (status, service type, and order status conditions).<\/li>\n<li>Fixed: Admin sidebar order badge and order counts now ignore deleted\/trash records and count only valid <code>rpress_payment<\/code> posts.<\/li>\n<li>Fixed: Paid tab highlighting\/count handling now correctly maps <code>paid<\/code> and <code>publish<\/code> states in order views.<\/li>\n<li>Fixed: List-view category navigation now lands on the correct selected category instead of showing previous-category items under the heading.<\/li>\n<li>Fixed: Mobile action-menu and horizontal category clicks now resolve to the correct section target and keep active-category states in sync.<\/li>\n<li>Improved: Category scrolling now uses dynamic sticky-header offsets for more reliable landing positions across desktop and mobile.<\/li>\n<li>Improved: Frontend <code>rp-frontend.js<\/code> enqueue version now includes filemtime to reduce stale browser-cache behavior during updates.<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.5(2026-04-07)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.5<\/li>\n<li>Added: New admin setting <code>Old RestroPress UI\/UX<\/code> to enable legacy service-selection modal flow before add-to-cart.<\/li>\n<li>Fixed: Service date\/time updates now prioritize active modal\/checkout selections before cookie fallbacks to prevent stale time overwrite.<\/li>\n<li>Fixed: Delivery\/Pickup selection synchronization across modal and checkout refresh flows for both old and current UI paths.<\/li>\n<li>Added: New core helper <code>rpress_get_enabled_service_types()<\/code> and updated service enablement checks to honor configured service mode.<\/li>\n<li>Improved: REST services endpoint now returns only enabled service types.<\/li>\n<li>Fixed: Removed duplicate PayPal helper declarations in <code>paypal-standard.php<\/code> to prevent fatal redeclare errors.<\/li>\n<li>Fixed: Old UI service popup now guarantees a visible active tab\/pane and no longer hides selected service label text behind legacy overlay pseudo-elements.<\/li>\n<li>Fixed: Checkout service selector now expands to full width when only one service type is enabled.<\/li>\n<li>Improved: Old UI service popup controls now use consistent rectangular styling with aligned full-width fields and buttons.<\/li>\n<li>Improved: Old UI popup service date\/time labels now align left and date\/time inputs show calendar\/clock icons consistently.<\/li>\n<li>Improved: Old UI service-tab and popup action colors now follow the configured Theme Color dynamically.<\/li>\n<li>Improved: Old UI popup visual overrides are now strictly scoped to old UI mode and no longer impact the default popup UI.<\/li>\n<li>Improved: When Old UI\/UX is disabled, the default datetime popup hides service-type tabs and keeps the primary Update action color synced with Theme Color.<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.4.1(2026-04-06)<\/h4>\n\n<ul>\n<li>Fixed: PayPal checkout\/connect redirects now allow PayPal hosts in WordPress safe redirects to prevent fallback redirect to wp-admin.<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.4(2026-03-28)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.4<\/li>\n<li>Fixed: Checkout gateway state now keeps hidden <code>rpress-gateway<\/code> synced with selected payment mode during gateway switch and final submit.<\/li>\n<li>Fixed: Hardened direct DB query paths with prepared\/typed placeholders in customer, discount, session, payment, tax, and stats handlers.<\/li>\n<li>Fixed: Reworked dynamic <code>IN (...)<\/code> query construction to sanitized array + placeholder flow for scanner-safe SQL execution.<\/li>\n<li>Fixed: Removed unescaped <code>payment_ids<\/code> usage in customer-user disconnect flow and enforced integer-only payment IDs before update query.<\/li>\n<li>Fixed: Replaced transient\/session batch delete raw SQL assembly with prepared option-name placeholder queries.<\/li>\n<li>Fixed: Updated legacy earnings\/tax aggregation queries to prepared statements for safer post ID handling.<\/li>\n<li>Fixed: Updated discount status cleanup bulk updates to prepared integer placeholder queries for posts\/postmeta.<\/li>\n<li>Fixed: Updated yearly tax\/earnings aggregate query paths to prepared statements in tax and payment stats\/functions.<\/li>\n<li>Security: Addressed latest PluginCheck <code>DirectDB.UnescapedDBParameter<\/code> findings reported in March 28 security scan.<\/li>\n<li>Security: Continued hardening for redirect and DB static-analysis warnings without changing frontend UX\/UI behavior.<\/li>\n<li>Maintenance: Synced release notes with internal <code>CHANGELOG_DEV.md<\/code> tracked fixes for faster future follow-up.<\/li>\n<li>Fixed: Mobile and tablet food listing layout now keeps cart access visible and usable without scrolling to page bottom.<\/li>\n<li>Fixed: Sticky mobile cart summary now updates quantity\/total reliably on add, update, remove, and clear-cart AJAX actions.<\/li>\n<li>Fixed: Checkout page responsive structure now stacks service\/cart\/form sections correctly across tablet and mobile widths.<\/li>\n<li>Fixed: Checkout mobile\/tablet flow now keeps the cart\/service panel above the form section for quicker cart visibility.<\/li>\n<li>Fixed: Category strip now renders in a stable single-row pattern with horizontal overflow handling in both list and grid modes.<\/li>\n<li>Fixed: Grid view category-strip wrappers now follow the same inline\/scroll behavior as list view.<\/li>\n<li>Fixed: Category popup trigger layering conflict introduced by one-line strip styling, so menu popup opens reliably again.<\/li>\n<li>Fixed: Category strip now remains sticky while scrolling and respects WordPress admin-bar offsets.<\/li>\n<li>Improved: Mobile\/tablet category and sticky-cart spacing\/position tuning for cleaner ordering UX.<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.3(2026-03-26)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.3<\/li>\n<li>Fixed: Delivery\/Pickup summary date now always follows WordPress date format across listing, popup, and checkout.<\/li>\n<li>Fixed: Summary date\/time now syncs immediately from modal selection and keeps formatted output after refresh.<\/li>\n<li>Fixed: Checkout and modal date\/time\/location fields now use full-width responsive controls.<\/li>\n<li>Fixed: Closed-state summary now hides invalid date\/time and prevents stale Edit exposure for invalid schedule states.<\/li>\n<li>Fixed: Add-to-cart popup no longer opens when service is closed; close notice is shown instead.<\/li>\n<li>Improved: Open-store flow now always exposes Edit so customers can update schedule quickly.<\/li>\n<li>Improved: Summary location icon UI modernized with animated glow pulse for clearer branch indicator.<\/li>\n<li>Added: \"Change location\" quick link in closed branch state to reopen schedule popup and switch branch directly.<\/li>\n<li>Security: Hardened customer dashboard profile update with strict nonce presence and verification to mitigate CSRF account-update attempts.<\/li>\n<li>Security: Replaced inline dashboard post-submit JavaScript redirects with <code>wp_safe_redirect<\/code> to prevent reflected redirect\/XSS injection vectors.<\/li>\n<li>Security: Sanitized REST order\/cart text payloads and escaped admin delivery-address rendering to mitigate stored XSS vectors (CVE-2025-69017 path).<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.2(2026-03-25)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.2<\/li>\n<li>Fixed: Grid view responsive layout issues for tablet widths (770px to 991px) to prevent half-width\/broken food cards<\/li>\n<li>Fixed: Listing service summary row structure and icon hooks for cleaner location\/date-time\/Edit alignment<\/li>\n<li>Improved: Date-time edit popup heading\/content structure for clearer schedule update flow<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>\n\n<h4>Version 3.2.8.1(2026-03-23)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8.1<\/li>\n<li>Fixed: Add-to-cart address\/zip validation now runs only for Delivery service, so Pickup with a selected branch no longer triggers unnecessary force-popup flow.<\/li>\n<li>Fixed: Core datetime popup now renders service date controls before service time controls for consistent ordering across service switches.<\/li>\n<li>Fixed: Food item popup now displays full item description content without 2-line truncation.<\/li>\n<li>Fixed: Service-switch modal refresh now updates only the listing service summary and no longer overwrites popup address controls.<\/li>\n<li>Improved: Delivery\/Pickup service summary row keeps location, date\/time, and Edit action aligned inline for consistent tab-row UI.<\/li>\n<li>Improved: Delivery schedule popup structure\/copy refinement for clearer service-edit flow without UX regressions.<\/li>\n<li>Improved: Elementor builder shortcode detection for checkout and RestroPress page checks (supports <code>_elementor_data<\/code>)<\/li>\n<li>Fixed: Stale modal\/overlay lock state that could block clicks on Order Online and Checkout pages<\/li>\n<li>Fixed: Datetime edit action now falls back to legacy service-options popup when datetime modal markup is unavailable<\/li>\n<li>Improved: Missing service-time flow opens service selection directly instead of showing empty closed-message error toast<\/li>\n<li>Fixed: Category scroll handler safety checks for invalid links\/sections to avoid frontend JS interruptions<\/li>\n<li>Security: Hardened add-on license AJAX actions with capability checks and strict option-key validation<\/li>\n<li>Security: Restricted API token generation endpoint access to authenticated users with valid user-edit permissions<\/li>\n<li>Security: Replaced weak time-based API\/cart token generation with cryptographically secure random tokens<\/li>\n<li>Security: Removed internal remote token-generation request path and now generates signed user API tokens locally<\/li>\n<li>Fixed: Default Services setting now applies correctly when Choose Services is set to Both Delivery and Pickup<\/li>\n<li>Fixed: Single-service mode (Delivery Only\/Pickup Only) now always enforces the enabled service and ignores default-service fallback<\/li>\n<li>Improved: Elementor builder compatibility for checkout and RestroPress page detection by scanning saved <code>_elementor_data<\/code> shortcode content<\/li>\n<li>Fixed: Stale frontend modal\/overlay lock state that could block clicks on Order Online and Checkout pages<\/li>\n<li>Fixed: Datetime edit flow now falls back to legacy service options popup when datetime modal markup is unavailable<\/li>\n<li>Improved: Missing service-time flow now opens service selection directly instead of showing blank\/empty closed-message toast<\/li>\n<li>Fixed: Category scrolling handler now safely skips invalid links\/sections to prevent frontend JS interruptions<\/li>\n<\/ul>\n\n<h4>Version 3.2.8(2026-03-13)<\/h4>\n\n<ul>\n<li>Updated: Plugin version bump to 3.2.8<\/li>\n<li>Updated: Readme metadata and changelog synchronization<\/li>\n<li>Fixed: Service type, date, and time state now stay synchronized across order-online, popup, and checkout flows<\/li>\n<li>Fixed: Datetime edit popup now keeps the Update action available when service timing controls are editable<\/li>\n<li>Fixed: Shared service context now validates store-open state against the normalized service date to avoid mismatched closed messages<\/li>\n<li>Improved: Frontend service-state handling cleanup without UI or UX changes<\/li>\n<li>Fixed: Vulnerabilities issues<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>\n\n<h4>Version 3.2.7(2026-03-09)<\/h4>\n\n<ul>\n<li>Fixed: Protected add-on item setup and price mappings from being overwritten during legacy migration<\/li>\n<li>Fixed: Legacy add-on migration now runs only when true legacy data is detected<\/li>\n<li>Fixed: Migration guard added for modern versions (<code>&gt;= 2.6<\/code>) to prevent unintended migration reruns<\/li>\n<li>Improved: Legacy migration now fills missing add-on meta safely without replacing existing term price\/type values<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>\n\n<h4>Version 3.2.6(2026-03-04)<\/h4>\n\n<ul>\n<li>Fixed: Checkout service time restore now targets the active service tab and no longer overwrites both delivery and pickup selects with a single cookie value<\/li>\n<li>Fixed: Core slot-expiry validation now runs only when Order Time Intervals and Limits runtime is loaded, preventing false \"Selected time slot is no longer available\" errors when the addon is inactive<\/li>\n<li>Fixed: Store open\/close validation now supports both 12-hour and 24-hour time formats and handles overnight windows reliably<\/li>\n<li>Fixed: \"Enable Always Order Option\" is now the only path that keeps the store open all day, and equal open\/close values no longer behave like always-open<\/li>\n<li>Fixed: Frontend store status checks now match core validation to prevent false midnight \"store open\" behavior<\/li>\n<li>Fixed: Early translation loading notice issues<\/li>\n<li>Fixed: Gateway initialization flow for translation compatibility<\/li>\n<li>Fixed: PHP warning\/deprecated compatibility issues<\/li>\n<li>Fixed: PayPal Connect OAuth redirect\/auth flow for one-click account connection<\/li>\n<li>Fixed: PayPal account details sync and merchant account display in gateway settings<\/li>\n<li>Fixed: PayPal Standard checkout payload\/merchant validation stability in sandbox mode<\/li>\n<li>Fixed: Sandbox PayPal checkout errors by adding safe test-mode currency fallback for unsupported INR flows<\/li>\n<li>Fixed: Add-to-cart button alignment at thumbnail bottom-center for all button shapes<\/li>\n<li>Fixed: Grid view card layout issues for food items without thumbnail images<\/li>\n<li>Fixed: Grid view spacing\/alignment issues for food items without thumbnail and description<\/li>\n<li>Added: Modern ecommerce-style order confirmation page layout (without functional regressions)<\/li>\n<li>Added: Realtime order status updates on confirmation page (websocket-first with fallback support)<\/li>\n<li>Added: Status-specific animated GIF support for confirmation status block<\/li>\n<li>Added: Browser push notifications for order status changes (including cross-page watcher support)<\/li>\n<li>Added: Auto-clear order tracking for completed\/cancelled\/failed statuses with final notification<\/li>\n<li>Added: Guided Realtime Updates settings section under Misc for easier websocket setup<\/li>\n<li>Improved: Realtime configuration now supports admin settings with backward-compatible constant fallback<\/li>\n<li>Fixed: Service time is now hidden across frontend views when disabled from Order Time, Interval &amp; Limits settings<\/li>\n<li>Fixed: Empty service-time rows are removed from receipt and order details templates when no service time is available<\/li>\n<li>Fixed: Order Online header now shows selected service time correctly when slots are enabled, while still respecting disabled-time settings<\/li>\n<li>Fixed: List view Order Online header now keeps service-time visible using selected-time fallback when cookie time is empty<\/li>\n<li>Improved: Service context now safely clears disabled service-time values before template rendering<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>\n\n<h4>Version 3.2.5(2026-02-26)<\/h4>\n\n<ul>\n<li>Added: Taxonomy sorting feature<\/li>\n<li>Fixed: Cart items count issue<\/li>\n<li>Fixed: Cart item quantity update issue<\/li>\n<li>Fixed: Service type switch issue<\/li>\n<li>Fixed: Blank cookies data validation<\/li>\n<li>Fixed: Ajax basis modal dom manipulation<\/li>\n<li>Code Cleanup<\/li>\n<\/ul>","raw_excerpt":"Commission free online food ordering for WordPress. Take pickup, delivery, and dine-in orders on your own site, with no per order fees.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/90988","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=90988"}],"author":[{"embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/magnigenie"}],"wp:attachment":[{"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=90988"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=90988"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=90988"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=90988"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=90988"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kk.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=90988"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}