{"id":220761,"date":"2025-02-26T07:05:29","date_gmt":"2025-02-26T07:05:29","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/olena-food-ordering\/"},"modified":"2026-09-12T10:11:05","modified_gmt":"2026-09-12T10:11:05","slug":"olena-food-ordering","status":"publish","type":"plugin","link":"https:\/\/te.wordpress.org\/plugins\/olena-food-ordering\/","author":16073732,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.1","stable_tag":"2.0.1","tested":"7.1.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Olena Food \u2013 Online Ordering for Food Trucks & Restaurants","header_author":"Maksym Marko","header_description":"Olena Food Ordering - a simple yet powerful WordPress plugin for restaurants and food trucks. Easily manage your menu, handle orders with custom add-ons, and organize pickups. Mobile-friendly interface ensures smooth ordering experience for your customers","assets_banners_color":"dbd0cc","last_updated":"2026-09-12 10:11:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/markomaksym.com.ua\/","rating":5,"author_block_rating":0,"active_installs":0,"downloads":1229,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"markomaksym","date":"2025-02-26 07:05:15","revision":3246863},"1.1.0":{"tag":"1.1.0","author":"markomaksym","date":"2025-03-01 08:23:12","revision":3248809},"1.2.0":{"tag":"1.2.0","author":"markomaksym","date":"2026-08-15 18:13:42","revision":3648925},"1.3.0":{"tag":"1.3.0","author":"markomaksym","date":"2026-08-20 13:45:59","revision":3656998},"1.3.1":{"tag":"1.3.1","author":"markomaksym","date":"2026-08-24 05:41:05","revision":3662658},"1.3.2":{"tag":"1.3.2","author":"markomaksym","date":"2026-08-24 16:47:11","revision":3663953},"1.4.0":{"tag":"1.4.0","author":"markomaksym","date":"2026-08-25 11:04:44","revision":3665156},"1.4.1":{"tag":"1.4.1","author":"markomaksym","date":"2026-08-25 14:50:46","revision":3665533},"1.4.2":{"tag":"1.4.2","author":"markomaksym","date":"2026-08-26 07:54:58","revision":3666479},"1.4.3":{"tag":"1.4.3","author":"markomaksym","date":"2026-08-27 07:25:52","revision":3668269},"1.4.6":{"tag":"1.4.6","author":"markomaksym","date":"2026-08-28 06:39:43","revision":3669909},"1.4.7":{"tag":"1.4.7","author":"markomaksym","date":"2026-08-29 10:03:57","revision":3671354},"1.5.0":{"tag":"1.5.0","author":"markomaksym","date":"2026-09-02 08:19:31","revision":3677458},"1.5.1":{"tag":"1.5.1","author":"markomaksym","date":"2026-09-07 17:47:40","revision":3685354},"1.5.2":{"tag":"1.5.2","author":"markomaksym","date":"2026-09-08 12:46:30","revision":3686628},"2.0.0":{"tag":"2.0.0","author":"markomaksym","date":"2026-09-12 09:41:17","revision":3692527},"2.0.1":{"tag":"2.0.1","author":"markomaksym","date":"2026-09-12 10:11:05","revision":3692553}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.jpg":{"filename":"icon-128x128.jpg","revision":3246863,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-128x128.png":{"filename":"icon-128x128.png","revision":3677458,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3246863,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3677458,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.jpg":{"filename":"banner-1544x500.jpg","revision":3685347,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":3685347,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"vajofo\/open-menu-item-button":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"vajofo\/open-menu-item-button","version":"0.1.0","title":"Olena. Open Menu Item Button","category":"widgets","icon":"smiley","description":"Olena. Open Menu Item Button","supports":{"html":false,"align":["left","right","full"],"color":{"__experimentalDefaultControls":{"background":true,"text":true}}},"attributes":{"align":{"type":"string","default":""},"message":{"type":"string","source":"text","selector":"div","default":"Hello, World!"}},"textdomain":"olena-food-ordering-source","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css"}},"tagged_versions":["1.0.1","1.1.0","1.2.0","1.3.0","1.3.1","1.3.2","1.4.0","1.4.1","1.4.2","1.4.3","1.4.6","1.4.7","1.5.0","1.5.1","1.5.2","2.0.0","2.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3677458,"resolution":"1","location":"assets","locale":"","width":1509,"height":2475},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3665156,"resolution":"10","location":"assets","locale":"","width":1921,"height":1495},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3665156,"resolution":"11","location":"assets","locale":"","width":1897,"height":1077},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3666479,"resolution":"12","location":"assets","locale":"","width":1921,"height":1446},"screenshot-13.jpg":{"filename":"screenshot-13.jpg","revision":3669909,"resolution":"13","location":"assets","locale":"","width":911,"height":1040},"screenshot-14.jpg":{"filename":"screenshot-14.jpg","revision":3669909,"resolution":"14","location":"assets","locale":"","width":1500,"height":811},"screenshot-15.jpg":{"filename":"screenshot-15.jpg","revision":3669909,"resolution":"15","location":"assets","locale":"","width":1452,"height":802},"screenshot-16.jpg":{"filename":"screenshot-16.jpg","revision":3685347,"resolution":"16","location":"assets","locale":"","width":1450,"height":958},"screenshot-17.jpg":{"filename":"screenshot-17.jpg","revision":3685347,"resolution":"17","location":"assets","locale":"","width":1452,"height":954},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3677458,"resolution":"2","location":"assets","locale":"","width":1441,"height":2079},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3677458,"resolution":"3","location":"assets","locale":"","width":1461,"height":1078},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3677458,"resolution":"4","location":"assets","locale":"","width":1459,"height":1730},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3677458,"resolution":"5","location":"assets","locale":"","width":1109,"height":1979},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3691018,"resolution":"6","location":"assets","locale":"","width":1921,"height":5638},"screenshot-7.jpg":{"filename":"screenshot-7.jpg","revision":3661524,"resolution":"7","location":"assets","locale":"","width":1722,"height":1144},"screenshot-8.jpg":{"filename":"screenshot-8.jpg","revision":3661524,"resolution":"8","location":"assets","locale":"","width":1720,"height":4748},"screenshot-9.jpg":{"filename":"screenshot-9.jpg","revision":3661524,"resolution":"9","location":"assets","locale":"","width":1723,"height":2228}},"screenshots":{"1":"Food menu","2":"Menu item customization and add-ons","3":"Shopping cart","4":"Checkout","5":"Order receipt","6":"Order management","7":"Stripe payment settings","8":"Email notification settings","9":"Working hours settings","10":"Pause \/ Open Orders settings page","11":"Pause \/ Open Orders store page","12":"Live Orders Sound Notifications page","13":"Menu Item Sizes","14":"Tips Settings page","15":"Tips on Checkout page","16":"Search by keywords, categories and tags","17":"Search by keyword"}},"plugin_section":[],"plugin_tags":[72293,43684,276650,23280,5349],"plugin_category":[39],"plugin_contributors":[155509],"plugin_business_model":[],"class_list":["post-220761","plugin","type-plugin","status-publish","hentry","plugin_tags-food-ordering","plugin_tags-online-ordering","plugin_tags-payment-online","plugin_tags-restaurant-menu","plugin_tags-stripe","plugin_category-business","plugin_contributors-markomaksym","plugin_committers-markomaksym"],"banners":{"banner":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/banner-772x250.jpg?rev=3685347","banner_2x":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/banner-1544x500.jpg?rev=3685347","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/icon-128x128.png?rev=3677458","icon_2x":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/icon-256x256.png?rev=3677458","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-1.jpg?rev=3677458","caption":"Food menu"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-2.jpg?rev=3677458","caption":"Menu item customization and add-ons"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-3.jpg?rev=3677458","caption":"Shopping cart"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-4.jpg?rev=3677458","caption":"Checkout"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-5.jpg?rev=3677458","caption":"Order receipt"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-6.jpg?rev=3691018","caption":"Order management"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-7.jpg?rev=3661524","caption":"Stripe payment settings"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-8.jpg?rev=3661524","caption":"Email notification settings"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-9.jpg?rev=3661524","caption":"Working hours settings"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-10.png?rev=3665156","caption":"Pause \/ Open Orders settings page"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-11.png?rev=3665156","caption":"Pause \/ Open Orders store page"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-12.png?rev=3666479","caption":"Live Orders Sound Notifications page"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-13.jpg?rev=3669909","caption":"Menu Item Sizes"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-14.jpg?rev=3669909","caption":"Tips Settings page"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-15.jpg?rev=3669909","caption":"Tips on Checkout page"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-16.jpg?rev=3685347","caption":"Search by keywords, categories and tags"},{"src":"https:\/\/ps.w.org\/olena-food-ordering\/assets\/screenshot-17.jpg?rev=3685347","caption":"Search by keyword"}],"raw_content":"<!--section=description-->\n<p>Olena Food is a WordPress food ordering plugin built for small restaurants, food trucks, caf\u00e9s, bakeries, and other food businesses.<\/p>\n\n<p>Create an online menu, allow customers to customize food with add-ons, accept orders through a mobile-friendly checkout, receive online payments with Stripe, and manage orders directly from WordPress.<\/p>\n\n<p>The plugin is designed to provide the essential tools needed for online food ordering without requiring WooCommerce.<\/p>\n\n<h3>How does it work?<\/h3>\n\n<p>Watch the video guide to see Olena Food in action:<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=Lg8e8-1983c<\/p>\n\n<h4>Menu Management<\/h4>\n\n<p>Create and manage your food menu directly from WordPress.<\/p>\n\n<ul>\n<li>Add menu items with names, descriptions, images, and prices.<\/li>\n<li>Organize menu items using categories and tags.<\/li>\n<li>Allow customers to filter menu items by category and tag.<\/li>\n<li>Display the menu using grid or list layouts.<\/li>\n<li>Support for more than 20 currency symbols.<\/li>\n<li>Responsive interface optimized for desktop, tablet, and mobile devices.<\/li>\n<\/ul>\n\n<h4>Store Search and Navigation<\/h4>\n\n<p>Help customers find what they want faster with optional search and category\/tag navigation on the storefront.<\/p>\n\n<ul>\n<li>Add a Categories navigation above the menu so customers can filter items by category with one click.<\/li>\n<li>Add a Tags navigation above the menu so customers can filter items by tag.<\/li>\n<li>Add a search box that finds menu items by their title and description.<\/li>\n<li>The search box shows the latest menu items when opened, then updates the results as the customer types.<\/li>\n<li>Search results appear in a popup that overlays the menu without shifting the page.<\/li>\n<li>Only categories and tags that contain at least one menu item are shown.<\/li>\n<li>Turn Search, Categories, and Tags on or off independently from the Designs settings page.<\/li>\n<\/ul>\n\n<h4>Complex Add-ons<\/h4>\n\n<p>Create flexible add-on options that allow customers to customize menu items before adding them to their cart.<\/p>\n\n<p>Add-ons can be used for options such as:<\/p>\n\n<ul>\n<li>Pizza toppings.<\/li>\n<li>Extra ingredients.<\/li>\n<li>Sauces and sides.<\/li>\n<li>Other item customization options.<\/li>\n<\/ul>\n\n<p>This makes it possible to create menu items with multiple customization choices and additional options.<\/p>\n\n<p>Add-ons are reusable and organized, so you build them once and assign them where needed:<\/p>\n\n<ul>\n<li>Group add-ons by type (such as Toppings, Sauces, or Sides) and give each its own price.<\/li>\n<li>Assign the add-ons you want to each menu item, so every dish shows only its relevant options.<\/li>\n<li>Set an initial quantity for an add-on, and customers can then adjust the quantity up or down while ordering.<\/li>\n<li>The item price, subtotal, and order totals update instantly as customers add, change, or remove add-ons.<\/li>\n<\/ul>\n\n<p>Mark add-ons as required when a customer must choose them:<\/p>\n\n<ul>\n<li>Set an add-on as required on a specific menu item, so it is added automatically at a fixed quantity and cannot be removed or changed.<\/li>\n<li>Required is set per menu item, so the same add-on can be optional on one dish and required on another, each with its own required quantity.<\/li>\n<li>Required add-ons are enforced securely on the server, so an order that omits a required add-on or changes its fixed quantity is rejected.<\/li>\n<\/ul>\n\n<p>You can also mark add-ons as unavailable to instantly pull a sold-out extra from every dish it is used on \u2014 see the Add-on Availability section below.<\/p>\n\n<p>A smooth animation makes customizing feel effortless: when a customer selects an add-on on the item page, it visually flies into their customizations while the remaining add-ons gently close the gap. The animation is purely visual and is automatically skipped when the browser's reduced-motion setting is enabled.<\/p>\n\n<h4>Menu Item Sizes<\/h4>\n\n<p>Offer the same dish in multiple sizes, each with its own price, so customers can pick the option that fits them.<\/p>\n\n<p>Every menu item has a Normal price, and you can optionally enable additional sizes such as Small and Large with their own prices.<\/p>\n\n<ul>\n<li>Set a Normal price plus prices for additional sizes right on the menu item editor.<\/li>\n<li>Customers choose a size on the storefront and the price updates instantly.<\/li>\n<li>Selecting different sizes of the same dish adds them as separate lines in the cart.<\/li>\n<li>The chosen size is shown throughout the cart, checkout, order receipt, and order management.<\/li>\n<li>Additional sizes left without a price are automatically hidden from customers, so half-configured options never appear.<\/li>\n<li>Built to be extended, so more sizes can be added by companion add-ons in the future.<\/li>\n<\/ul>\n\n<h4>Order Creation and Management<\/h4>\n\n<p>Customers can create orders directly from your website.<\/p>\n\n<p>The ordering process includes:<\/p>\n\n<ul>\n<li>Selecting menu items.<\/li>\n<li>Configuring item add-ons.<\/li>\n<li>Adding items to the cart.<\/li>\n<li>Reviewing the order.<\/li>\n<li>Completing checkout.<\/li>\n<li>Creating the order in WordPress.<\/li>\n<\/ul>\n\n<p>Administrators can manage submitted orders from the WordPress admin area.<\/p>\n\n<h4>Cart and Checkout<\/h4>\n\n<p>Olena Food includes its own cart and checkout experience.<\/p>\n\n<p>Customers can review their selected products and add-ons before submitting an order. The interface is designed to work smoothly on mobile devices, making it suitable for customers ordering directly from their phones.<\/p>\n\n<h4>Duplicate Order and Abuse Protection<\/h4>\n\n<p>Prevents accidental duplicate orders and basic order abuse automatically, with no setup required.<\/p>\n\n<p>Every storefront visitor is given a secure, private session that the plugin uses to protect order creation on the server:<\/p>\n\n<ul>\n<li>Double-clicking Place Order, or a browser\/network retry, no longer creates the same order twice.<\/li>\n<li>Two orders can never be created at the same time from the same visitor.<\/li>\n<li>A different, genuine order placed shortly after the first is still allowed \u2014 only identical repeats are treated as duplicates.<\/li>\n<li>The number of orders one visitor can place in a short period is limited to reduce abuse.<\/li>\n<\/ul>\n\n<p>The protection is designed to be reliable and privacy-friendly:<\/p>\n\n<ul>\n<li>Works for guests, with no login or account required.<\/li>\n<li>Does not rely on IP addresses, so visitors on shared networks such as offices, universities, hotels, VPNs, and mobile networks are not wrongly blocked.<\/li>\n<li>Enforced securely on the server and compatible with page caching.<\/li>\n<li>No personal data is stored for this protection, and the session identifier is kept only as a secure hash.<\/li>\n<li>Sessions expire automatically and are cleaned up in the background.<\/li>\n<\/ul>\n\n<h4>Stripe Payment Gateway<\/h4>\n\n<p>Accept online card payments using Stripe.<\/p>\n\n<p>Customers can securely complete their payment using Stripe while placing an order.<\/p>\n\n<p>Stripe payment support works alongside other available payment methods, allowing businesses to offer online payment when required.<\/p>\n\n<h4>Email Notifications<\/h4>\n\n<p>Send automatic email notifications when important order events occur.<\/p>\n\n<p>Separate notifications can be configured for administrators and customers, including:<\/p>\n\n<ul>\n<li>Order confirmation.<\/li>\n<li>Successful order payment.<\/li>\n<li>Order cancellation, sent automatically when a customer cancels a pending order.<\/li>\n<\/ul>\n\n<p>Notification settings allow you to configure email subjects and email templates for different recipients.<\/p>\n\n<p>Order cancellation emails can be enabled or disabled independently for administrators and customers, and support the same placeholders as the other order emails.<\/p>\n\n<h4>Tips<\/h4>\n\n<p>Let customers add a tip to their order directly from the checkout page.<\/p>\n\n<p>Enable tipping from the plugin settings and choose a percentage to offer alongside the No Tip option.<\/p>\n\n<ul>\n<li>Choose a tip percentage of 5%, 10%, 15%, 20%, or 25%.<\/li>\n<li>Customers can select No Tip or the configured percentage during checkout, and the order total updates instantly.<\/li>\n<li>Percentage tips are calculated only from menu items and their add-ons, excluding tax, delivery, and other fees.<\/li>\n<li>Tips are included automatically in the final amount sent to the payment gateway.<\/li>\n<li>The selected tip is saved with the order and displayed on the customer receipt and in order management.<\/li>\n<li>Use the {tips} placeholder to include the tip amount in admin and customer email notifications.<\/li>\n<li>Built to be extended by companion add-ons with multiple tip percentages and custom tip amounts.<\/li>\n<\/ul>\n\n<h4>Working Hours<\/h4>\n\n<p>Configure the days and hours when your business accepts orders.<\/p>\n\n<p>Working Hours settings allow you to define your regular business schedule and create custom rules for specific dates when different opening hours are required.<\/p>\n\n<h4>Pause \/ Open Orders<\/h4>\n\n<p>Temporarily pause online ordering whenever you need to stop accepting orders, and reopen it with a single click.<\/p>\n\n<p>Pausing and reopening can be controlled from multiple places, and all of them stay in sync in real time:<\/p>\n\n<ul>\n<li>A dedicated Pause \/ Open Orders settings tab.<\/li>\n<li>A floating action button in the WordPress admin.<\/li>\n<li>A status item in the WordPress admin bar.<\/li>\n<\/ul>\n\n<p>While ordering is paused you can control what customers see and how the store behaves:<\/p>\n\n<ul>\n<li>Show a customizable notice on the storefront with your own title and message.<\/li>\n<li>Choose whether to keep the menu visible or hide it while ordering is paused.<\/li>\n<li>Prevent new orders from being placed, enforced securely on the server.<\/li>\n<li>Choose whether the floating button appears on every admin page or only on the settings screen.<\/li>\n<\/ul>\n\n<h4>Menu Item Availability<\/h4>\n\n<p>Mark individual menu items as available or unavailable without unpublishing them, so you can quickly pull a dish off the menu when you sell out or stop offering it.<\/p>\n\n<p>Each menu item has an Availability option (Available or Unavailable). When an item is set to unavailable:<\/p>\n\n<ul>\n<li>An \"Unavailable\" label is shown on the item and its store card.<\/li>\n<li>The Add to Cart button is removed so customers cannot add it.<\/li>\n<li>If the item is already in a customer's cart, it is highlighted so they can remove it before checkout.<\/li>\n<li>Orders that include an unavailable item are blocked securely on the server, so it can never be purchased.<\/li>\n<\/ul>\n\n<p>Availability is also easy to spot in the WordPress admin:<\/p>\n\n<ul>\n<li>The menu items list table shows an Availability column with a colored status for each item.<\/li>\n<li>The editor screen of an unavailable item is highlighted so its status is clear at a glance.<\/li>\n<\/ul>\n\n<h4>Add-on Availability<\/h4>\n\n<p>Mark individual add-ons as available or unavailable to instantly pull a sold-out extra \u2014 such as a topping or sauce \u2014 from every dish it is used on, without editing each menu item.<\/p>\n\n<p>Availability belongs to the add-on itself, so one change applies everywhere it is assigned:<\/p>\n\n<ul>\n<li>Mark an add-on unavailable once and it disappears from customers on every menu item that uses it.<\/li>\n<li>Make it available again and it automatically returns everywhere it was assigned, with no need to re-add it.<\/li>\n<li>Menu item assignments are never changed \u2014 only what customers can currently see and order.<\/li>\n<\/ul>\n\n<p>Unavailable add-ons remain fully manageable in the WordPress admin:<\/p>\n\n<ul>\n<li>Set availability from the add-on editor, while creating an add-on, or from an expandable settings area on each selected add-on.<\/li>\n<li>An \"Unavailable\" marker is shown in the Menu Item Add-ons manager, in both the available and selected lists.<\/li>\n<li>A new Availability column on the add-ons list table shows a colored status for each add-on.<\/li>\n<\/ul>\n\n<p>Availability is enforced securely for customers:<\/p>\n\n<ul>\n<li>Unavailable add-ons, and any category left with no available add-ons, are hidden from the storefront.<\/li>\n<li>An \"Unavailable\" badge appears on an already-selected add-on that becomes unavailable.<\/li>\n<li>Orders that include an unavailable add-on are blocked on the server, so it can never be purchased.<\/li>\n<li>Existing add-ons without this setting are treated as available.<\/li>\n<\/ul>\n\n<h4>Live Orders<\/h4>\n\n<p>Keep a real-time view of incoming orders and never miss one, even in a busy kitchen or food truck.<\/p>\n\n<p>The Live Orders page shows a live monitor of new orders that have not been opened yet, and plays a sound alert so you know the moment an order arrives.<\/p>\n\n<ul>\n<li>See new orders appear automatically, without refreshing the page.<\/li>\n<li>Get an online\/offline indicator that shows whether the monitor is connected.<\/li>\n<li>Click any order to open it in a new tab, which automatically marks it as viewed.<\/li>\n<li>Once an order is opened, it disappears from the monitor on the next update \u2014 on every device and for every logged-in user.<\/li>\n<li>Choose from four notification sounds (Default Beep, Notification, Asterisk, Exclamation).<\/li>\n<li>Adjust the alert volume, or set it to zero to disable the sound.<\/li>\n<li>Use the Test Sound button to preview the alert and allow your browser to play notification sounds.<\/li>\n<li>A \"New Orders\" counter in the WordPress admin bar shows how many orders are waiting from anywhere in the dashboard, and updates live.<\/li>\n<\/ul>\n\n<p>Historical orders placed before this feature are never treated as new, so enabling Live Orders will not flood the monitor with old orders.<\/p>\n\n<h4>Store Designs<\/h4>\n\n<p>Change the look of your store and the Olena Food admin screens by choosing a design, without touching any code.<\/p>\n\n<p>Pick a design on the Designs settings page and it is applied to both the storefront and the Olena admin, on top of the plugin's default styles:<\/p>\n\n<ul>\n<li>Default \u2014 the original Olena Food appearance, with no additional styles loaded.<\/li>\n<li>Basic \u2014 a soft, rounded, coral-accented design.<\/li>\n<li>Minimal \u2014 a clean, restrained design with squared corners, thin borders, subtle shadows, and a muted terracotta accent, focused on food photography and content.<\/li>\n<\/ul>\n\n<p>The selected design is loaded only when it is chosen, so Default stays lightweight, and your selection is remembered across visits. Built to be extended, so companion add-ons can register their own designs.<\/p>\n\n<h4>Setup Wizard<\/h4>\n\n<p>Get your store up and running quickly with a guided first-run setup wizard, instead of hunting through every settings page.<\/p>\n\n<p>After installing the plugin you are invited to configure the store step by step, covering only the essentials needed to start taking orders:<\/p>\n\n<ul>\n<li>Choose your currency, store page, and free delivery options.<\/li>\n<li>Set your time zone and regular working hours.<\/li>\n<li>Turn on payments and tips, and pick a tip percentage.<\/li>\n<li>Configure order notification emails for administrators and customers.<\/li>\n<\/ul>\n\n<p>The wizard makes it easy to start:<\/p>\n\n<ul>\n<li>Choose between importing the demo content or setting up the store manually.<\/li>\n<li>Guides you to use a compatible permalink structure, and can apply it for you with one click.<\/li>\n<li>Saves every step through the same settings used across the plugin, so nothing is duplicated or lost.<\/li>\n<li>Advanced options stay on the normal settings pages, keeping the wizard short and focused.<\/li>\n<li>Existing stores are detected automatically, so the wizard only appears on a fresh install and never overwrites your configuration.<\/li>\n<\/ul>\n\n<h4>Demo Import<\/h4>\n\n<p>Get started quickly by importing demo content.<\/p>\n\n<p>The demo importer creates example menu items and add-ons so you can see how the plugin works and use the imported content as a starting point for your own menu.<\/p>\n\n<h4>Mobile-Friendly Ordering<\/h4>\n\n<p>Olena Food is designed with mobile ordering in mind.<\/p>\n\n<p>Customers can browse the menu, customize items, manage their cart, and complete orders from smartphones, tablets, and desktop computers.<\/p>\n\n<h4>No WooCommerce Required<\/h4>\n\n<p>Olena Food provides its own food ordering workflow and does not require WooCommerce.<\/p>\n\n<p>This makes it suitable for small food businesses that want a focused ordering system without installing and configuring a full eCommerce platform.<\/p>\n\n<!--section=installation-->\n<h4>From your WordPress dashboard<\/h4>\n\n<ol>\n<li>Go to <code>Plugins &gt; Add New<\/code>.<\/li>\n<li>Search for <code>Olena Food<\/code>.<\/li>\n<li>Install and activate the plugin.<\/li>\n<li>Configure the plugin settings.<\/li>\n<li>Optionally import the demo menu items and add-ons.<\/li>\n<li>Add your own menu items and start accepting orders.<\/li>\n<\/ol>\n\n<h4>Manual installation<\/h4>\n\n<ol>\n<li>Download Olena Food.<\/li>\n<li>Upload the plugin directory to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate Olena Food from the <code>Plugins<\/code> page in WordPress.<\/li>\n<li>Configure the plugin settings.<\/li>\n<li>Optionally import the demo menu items and add-ons.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Uninstall issue fixed.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added Add-on Availability to mark individual add-ons as available or unavailable, so a sold-out extra can be pulled from every dish at once without removing it from any menu item.<\/li>\n<li>Marking an add-on unavailable hides it from customers everywhere it is assigned; making it available again restores it automatically, with no reassignment.<\/li>\n<li>Availability is a global property of the add-on and can be set from the add-on editor, while creating an add-on, or from an expandable settings area on each add-on in the Menu Item Add-ons manager.<\/li>\n<li>Unavailable add-ons stay fully visible and manageable in the WordPress admin, with an \"Unavailable\" marker in the Menu Item Add-ons manager and a new Availability column on the add-ons list table.<\/li>\n<li>The storefront hides unavailable add-ons, hides categories that become empty, and shows an \"Unavailable\" badge on an already-selected add-on that becomes unavailable.<\/li>\n<li>Orders that include an unavailable add-on are blocked securely on the server, so an unavailable add-on can never be purchased.<\/li>\n<li>Existing add-ons without this setting are treated as available, so nothing changes after updating.<\/li>\n<li>Added Required Add-ons to mark specific add-ons as mandatory on individual menu items, so a required extra is added automatically at a fixed quantity and cannot be removed or changed by the customer.<\/li>\n<li>Required is set per menu item, so the same add-on can be optional on one dish and required on another, each with its own required quantity.<\/li>\n<li>Required add-ons are enforced securely on the server, so an order that omits a required add-on or changes its fixed quantity is rejected.<\/li>\n<li>Unavailable always takes priority over Required: an add-on that is unavailable is not shown, added, or enforced, and resumes as required automatically once it becomes available again.<\/li>\n<li>Existing menu items without this setting are unaffected, so nothing changes after updating.<\/li>\n<li>Customers can now remove individual add-ons directly from the cart page, without editing or re-adding the item.<\/li>\n<li>Each add-on in the cart shows a delete button next to it, so unwanted extras can be removed with a single click.<\/li>\n<li>The item price, subtotal, and order totals update instantly when an add-on is removed.<\/li>\n<li>Added a smooth add-on selection animation on the single item page: the chosen add-on visually flies into your customizations while the remaining add-ons gently close the gap.<\/li>\n<li>The animation is purely visual and never affects add-on selection, pricing, or the cart, and is automatically skipped when the browser's reduced-motion setting is enabled.<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Added Order Canceled email notifications, sent automatically when a customer cancels a pending order.<\/li>\n<li>Order cancellation emails can be enabled or disabled independently for administrators and customers, each with its own subject and template.<\/li>\n<li>Cancellation emails reuse the same recipients and placeholders as the other order emails, so historical order details are preserved.<\/li>\n<li>Improved the Live Orders dashboard so a customer-cancelled order re-surfaces in the monitor and plays the sound alert, so cancellations are never missed.<\/li>\n<li>A cancelled order is clearly labeled \"Cancelled by customer\" on the Live Orders monitor and reuses the existing order card instead of creating a duplicate.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Added an optional storefront search box that finds menu items by their title and description.<\/li>\n<li>The search box shows the latest menu items when opened and updates results as the customer types, in a popup that overlays the menu without shifting the page.<\/li>\n<li>Added optional Categories and Tags navigation above the storefront menu for one-click filtering.<\/li>\n<li>Only categories and tags that contain at least one menu item are shown in the navigation.<\/li>\n<li>Enable Search, Categories, and Tags independently from the Designs settings page; all default to off, so existing stores are unchanged after updating.<\/li>\n<li>Added backend duplicate-order protection so double-clicking or retrying Place Order no longer creates two orders.<\/li>\n<li>Made order creation race-safe, so two simultaneous requests from the same visitor can never both create an order.<\/li>\n<li>Added per-visitor order rate limiting to reduce order abuse, without using IP-based blocking.<\/li>\n<li>Added a private, secure storefront session for guests (stored only as a hash) that powers the new protection and is compatible with cached pages.<\/li>\n<li>Added reusable database infrastructure that installs and upgrades the new sessions table automatically on activation and on plugin updates.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added a new Minimal store design \u2014 a clean, squared, flat look with thin borders, subtle shadows, and a muted terracotta accent.<\/li>\n<li>Choose your store design (Default, Basic, or Minimal) on the Designs settings page; the selected design styles both the storefront and the Olena Food admin screens.<\/li>\n<li>The selected design loads only when chosen and is remembered across visits, so Default stays lightweight.<\/li>\n<li>Built to be extended, so companion add-ons can register their own designs.<\/li>\n<\/ul>\n\n<h4>1.4.7<\/h4>\n\n<ul>\n<li>Added a first-run Setup Wizard to configure the store step by step after installation.<\/li>\n<li>Choose between importing the demo content or setting up the store manually.<\/li>\n<li>Guided steps cover currency and store page, working hours, payments and tips, and order notification emails.<\/li>\n<li>The wizard checks the permalink structure and can apply a compatible one with a single click.<\/li>\n<li>Every step saves through the plugin's existing settings, so nothing is duplicated.<\/li>\n<li>Existing stores are detected automatically, so the wizard only appears on a fresh install and never overwrites your configuration.<\/li>\n<\/ul>\n\n<h4>1.4.6<\/h4>\n\n<ul>\n<li>Added Tips support to let customers leave a tip during checkout.<\/li>\n<li>Admins can enable Tips and choose one percentage option from 5%, 10%, 15%, 20%, or 25%.<\/li>\n<li>Customers can choose No Tip or the configured percentage, with the total updating instantly.<\/li>\n<li>Percentage tips are calculated only from menu items and their add-ons, excluding tax, delivery, and other fees.<\/li>\n<li>Tips are included automatically in the final order total and payment amount.<\/li>\n<li>The saved tip is shown on the customer receipt and in order management.<\/li>\n<li>Added the {tips} email placeholder for admin and customer notification templates.<\/li>\n<li>Built to be extended by companion add-ons with multiple tip percentages and custom tip amounts.<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Added Menu Item Sizes to offer a dish in multiple sizes, each with its own price.<\/li>\n<li>Each item keeps a Normal price and can enable additional sizes such as Small and Large.<\/li>\n<li>Customers choose a size on the storefront and the price updates instantly.<\/li>\n<li>Selecting different sizes of the same item adds them as separate cart lines.<\/li>\n<li>The chosen size is shown across the cart, checkout, receipt, and order management.<\/li>\n<li>Additional sizes without a price are automatically hidden from customers.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>Added Live Orders, a real-time monitor of new (unviewed) orders on the settings page.<\/li>\n<li>New orders appear automatically without reloading; an online\/offline indicator shows the connection status.<\/li>\n<li>Opening an order in the WordPress editor automatically marks it as viewed and removes it from the monitor on the next update.<\/li>\n<li>Added order sound alerts with four selectable sounds, a volume control, and a Test Sound button.<\/li>\n<li>Added a live \"New Orders\" counter to the WordPress admin bar linking to the orders list.<\/li>\n<li>Historical orders created before this feature are never shown as new.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Added Menu Item Availability to mark items as available or unavailable.<\/li>\n<li>Unavailable items show an \"Unavailable\" label and hide the Add to Cart button on the storefront.<\/li>\n<li>Unavailable items already in the cart are highlighted so customers can remove them before checkout.<\/li>\n<li>Orders containing unavailable items are blocked securely on the server.<\/li>\n<li>Added an Availability column to the menu items admin table and a highlight on the item editor screen.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added Pause \/ Open Orders feature to temporarily pause and reopen online ordering.<\/li>\n<li>Added synced pause controls in the settings tab, admin floating button, and admin bar.<\/li>\n<li>Added a customizable paused notice for the storefront.<\/li>\n<li>Added an option to keep the menu visible or hidden while ordering is paused.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Customer Additional notes.<\/li>\n<li>Admin Additional notes.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Payment integration improved.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added Stripe payment gateway.<\/li>\n<li>Added email notifications for administrators and customers.<\/li>\n<li>Added configurable working hours.<\/li>\n<li>Added order management improvements.<\/li>\n<li>Added cart and checkout improvements.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Tested with WordPress 7.1.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added menu item filtering by categories and tags.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Compatibility and required improvements.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release of Olena Food.<\/li>\n<\/ul>","raw_excerpt":"A complete food ordering plugin for restaurants and food trucks with menus, add-ons, orders, Stripe payments, and working hours.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/220761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=220761"}],"author":[{"embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/markomaksym"}],"wp:attachment":[{"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=220761"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=220761"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=220761"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=220761"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=220761"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/te.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=220761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}