Create a branded restaurant photo menu and take commission-free pickup and delivery orders on your own website. Customers pay by card with Stripe or pay in person, and the money goes straight to your restaurant. WooCommerce is not required.
Set up in minutes. The setup guide opens when you activate the plugin. Upload a photo or PDF of your menu and AI fills in the dishes, prices and categories for you to check (requires WordPress 7.0 or newer with an AI provider connected). You can also type dishes in, or import a CSV.
Moving from GloriaFood? Import your GloriaFood menu with a Fetch Menu key or JSON file, and your customer and order history from GloriaFood report CSVs, under Yatoon Menu > Import & migration. Menus from Orderable, WPCafe, WooCommerce and RestroPress CSV exports can be imported too. Imported dishes stay hidden until you review them.
Included free:
- Photo menu with categories, options and modifiers, allergen notes, stock limits and sold-out marks
- Pickup ordering with ASAP or scheduled times, opening hours, holidays and kitchen capacity
- Delivery with a flat fee, minimum order and a postal-code list
- Debit and credit card payments with Stripe, plus pay in person
- Kitchen Display with sound alerts, order tracking page and email notifications
- Customer accounts, coupons, table reservations and an 8-language ordering interface
Free and Pro. The free plugin covers pickup and delivery ordering, Stripe card payments and pay in person. Yatoon Pro adds Apple Pay and Google Pay, Square, PayPal, Alipay and WeChat Pay, SMS alerts, delivery pricing by distance, tips, dine-in and table QR ordering, multi-location ordering, sales reports, loyalty campaigns, cloud printing and refund and dispute tracking.
Set prices and currency, restaurant hours and closures, and scheduled pickup. The checkout phone country code follows the restaurant country selected in settings.
The optional AI Food Assistant can suggest dishes from your menu when a WordPress AI provider is connected. Normal menu browsing and ordering work without AI. Customers can switch the ordering interface between English (US and UK), Simplified Chinese, Traditional Chinese, Spanish (Mexico and Spain), French and German when the restaurant enables the language selector in Checkout & language settings. Dish names, descriptions, categories and modifier labels can be translated in the background using a configured Google Cloud Translation key. Vietnamese, Korean, Japanese, Portuguese (Brazil), Filipino and Arabic become selectable after their interface catalogue has been generated; Arabic uses a right-to-left layout. Manual translations are protected. Some newer interface labels require the initial translation run even in bundled languages. Optional menu structured data and consent-based analytics help customers discover the menu while leaving analytics under the site's consent setup.
Optional receiver protection is configured in Operations & health. It applies to the entire WordPress site, not separate branch kitchens. Select at least one device currently checking Orders or Kitchen Display. If all selected devices stop successfully polling for the configured 2–30 minutes, new checkouts pause on the next server request without waiting for cron. A successful poll restores availability subject to manual pauses and other ordering rules. Existing paid orders and owned payment recovery are not automatically cancelled or refunded. Browser sleep, closing the receiving tab, logging out or a lost connection may trigger this protection. It does not prove a person accepted an order; retain unaccepted-order escalation and a backup contact channel.
- Install and activate the plugin. Deactivate any other Yatoon edition first.
- The setup guide opens automatically: enter your restaurant name, order email and currency.
- Upload a photo or PDF of your menu for AI to read, or add dishes by hand (name, price, category). Photos and options can be added later.
- Click "Save & create my pages". An "Order Online" page is created and pickup ordering is turned on.
- Open the ordering page on your phone and place a test order. It appears under Orders and Kitchen Display.
You can reopen the guide at any time from Yatoon Menu > Settings > Setup Wizard.
To take card payments, add your Stripe keys under Yatoon Menu > Settings > Online payments. Keep test mode on and place a test order with a Stripe test card before switching to live keys. To offer delivery, open Settings > Delivery.
4.0.0
- New restaurant workspace with order status counters, search, date and location filters, pagination, order details and a kitchen board.
- Shared cash collection and audited cancellation in both editions.
- Fix hidden order filters, truncated order lists, unsafe deletion, optional phone validation and security-check bypasses.
- The optional spam check (Turnstile or hCaptcha) now also protects card, wallet and PayPal payments. If the site cannot reach the provider, limited checkout attempts may be allowed per browser session, subject to a shared IP limit.
- New: Debit and credit card payments with Stripe in the free plugin. Pay in person stays available.
- New: Delivery in the free plugin with a flat fee, minimum order and postal-code list.
- New: AI menu import in the setup guide. Upload a menu photo or PDF and the dishes, prices and categories are filled in for review (WordPress 7.0+ with an AI provider).
- New: Import links for GloriaFood, Orderable, WPCafe and RestroPress menus in the setup guide.
- New: Simple admin view for new installs until setup is finished, with a "Show all features" switch.
- New: A one-time, dismissible review request after 10 completed orders.
- Setup can add up to 200 dishes and keeps dish descriptions.
- Shorter plugin name and updated WordPress.org tags.
- AI model lists updated: Claude Haiku 5.5 (new default) and Sonnet 5.5; GPT-6.1 Terra added. Flagship models are not listed because ordering help does not need them. Saved models that are no longer listed switch to the provider's recommended model.
3.4.8
- Open the setup guide automatically after activation.
- Turn on pickup ordering by default in the setup guide and warn the owner when ordering is off.
- Offer to remove the sample dishes and preselect a category for the first dish.
- Remove a duplicate admin navigation row, including a QR tables link that was not available in Free.
- Make the front-end Kitchen Display page optional in setup.
- Let menu-only restaurants hide the ordering-off reminder.
- Remove internal build notes from the plugin package.
3.4.7
- Refresh the language picker with local country flags and a compact account icon.
- Reduce and center the mobile sign-in sheet while keeping longer forms scrollable.
- Make Log out visible beside the signed-in customer name.
- Fix the Sign in button showing no feedback and the clipped "Continue with Google" button.
- Sign-in, Create account and account pages now follow the active menu theme.
- New Checkout & language > Customer sign-up: phone number on sign-up can be off, optional or required.
- New accounts are confirmed with a 6-digit email code and signed in automatically.
- Google, Facebook and Apple sign-in ask for a phone number first when it is required.
- Administrators who sign in on the storefront form are now told to use wp-admin.
3.4.6 performance revision
- Isolate restaurant nonce refresh from Booking on the same site.
- Reuse display menu data and output one complete language catalogue.
- Move AI capability checks and social SDK loading off the initial page path.
- Reduce frontend option queries and unnecessary admin media assets.
- Preserve the 3.4.6 seat reservation fixes.
3.4.6
- Keep queued confirmation emails and reminder deduplication intact when staff change only the table.
- Prevent overlapping table reservations, add dining/cleanup times, version-checked table changes, signed guest cancellation/rescheduling, pending expiry and arrival reminders.
- Synchronize shared reservation and header components between Free and Pro.
- Configure bookable tables and guest services in Reservations; see docs/reservations.md.
3.4.5
- Center mobile next pickup beneath the language selector using matching column widths.
- Refined mobile header alignment into two paired rows while retaining the desktop layout.
- Place the next pickup time beside the status badge on phones, with complete dates retained for future pickups.
- Improved the responsive restaurant header: next pickup and hours stay together, with compact mobile language selection and availability-backed estimates.
- Added reviewed menu migration and isolated customer/order history archives; fixed desktop column settings and clarified same-day pickup availability. See docs/migration.md for source formats and limits.
- Pro: direct printing sends plain text in the printer's font (UTF-8 when the printer reports support, otherwise an ASCII fallback with a warning on the Printer page) and cuts with the protocol header. The kitchen ticket and the receipt print as separate, cut tickets.
- Pro: printing continues while the printer reports paper low. Paper out, cover open, busy and offline states wait without using retries and resume automatically.
- Pro: tickets for cancelled, refunded or deleted orders are not printed and never hold up later tickets; orders awaiting payment review wait.
- Pro: staff are emailed or texted when an order ticket has not printed within a set time (default 10 minutes) or fails, independent of order escalation. Alerts say that the printer needs attention.
- Pro: every outstanding ticket is kept; printed history is limited to 80 tickets and closed tickets to 200 for 7 days.
- Pro: reprints are saved as background tasks, so a busy print queue retries without duplicate tickets.
- Pro: honor the optional postal-code setting for distance delivery.
- Fix legacy Chinese sushi-roll and General Tso descriptions, preserving unrelated merchant-authored translations.
- Preserve original dish names during localization so description corrections can match correctly. Repair the known Spanish Kung Pao and Smoothie mistranslations.
- Keep the order confirmation close button neutral and centered despite theme button styles, with a touch-friendly target and visible keyboard focus.
- Centralize pickup schedules, holiday closures, kitchen preparation and future-date controls in Hours & availability; prevent general settings from overwriting those values.
- Add optional site-wide receiver protection. Select receiving devices in Operations & health; stop new checkouts when all selected devices stop successfully checking orders, and resume after reconnection without clearing manual pauses or changing existing orders and payments.
- Refresh receiver heartbeats only after a successful order poll; recover expired staff heartbeat nonces. Keep unaccepted-order alerts separate from device connectivity.
- Clarify listed, unlisted and sold-out dishes and category actions. Refresh pickup availability during idle checkout, without refreshing while the payment button is processing.
- Redesign the live kitchen display: three lanes with countdowns, late highlighting, allergy callouts, one primary action per ticket and flicker-free updates.
- Orders page: structured item list with quantity badges and highlighted special requests; Delete moved into a More menu. Reports: summary cards and bars.
- Menu page: single sticky category bar, correct dish thumbnails and two-column dish cards on desktop.
- Front-end CSS refactor: about 4,480 !important declarations across the menu stylesheets were replaced by scoped selectors (#yatoon-app for the menu and its overlays, plus the kitchen, order-status and reservation roots). About 30 remain, only where a rule must beat an inline style set by JavaScript or style /. Unused legacy rules were removed and menu.css/menu.js ship minified (menu.min.css, menu.min.js) unless SCRIPT_DEBUG is on. Theme authors can override any rule with the same selector prefix.
- The menu and its overlays are wrapped in #yatoon-app, so block themes no longer push the cart drawer, backdrop and confirmation overlay into the content column.
- Update the bundled Freemius SDK to 2.13.5.
- Checkout: on desktop the order summary sits beside the form in a two-column sheet; the price breakdown is collapsed until opened; the pickup estimate is hidden for delivery orders.
- Admin: the many Yatoon Menu pages are grouped into Overview, Service, Menu, Grow and Settings with a two-level navigation bar; secondary pages leave the WordPress sidebar but stay one click away.
3.4.2
- Add configurable kitchen workload capacity shared by ASAP, scheduled orders and unexpired payment holds. Large orders reserve multiple windows and checkout rechecks capacity under the inventory lock.
- Include merchant identity, regional dates, payment status and complete order details in printed receipts and customer emails. Save merchant identity with new orders and support optional branch contact details.
- Add an accessible close control to order confirmation and clear the submitted basket after success.
- Keep recent overdue and staff-confirmed kitchen work reserved. Isolate tickets inactive for more than 24 hours from current capacity without completing or cancelling them; staff can continue preparation to restore their workload. Filter staff review and live-board pages before pagination, and return proper authorization errors. Expiring busy-mode delays remain available.
- Fall back to the restaurant address when an optional location or marketing address is empty.
- Complete translations for the new kitchen, receipt and settings text in the bundled languages; sanitize kitchen workload and category order input and normalize line endings flagged by Plugin Check.
3.4.1
- Add numeric category positions: moving one category automatically shifts the others. Validate saves and reject edits made against outdated category lists.
- Keep same-day pickup available by default; display Today and format future dates for the customer language / region only when future pickup is enabled. Enforce the same restaurant-local date range at checkout.
- Add independent category hide/restore controls; restoring a category preserves each dish's own visibility. Hidden categories are excluded from public feeds and new checkout validation.
- Complete optional uninstall cleanup for marketing storage and keep consent wording versions independent of release versions.
- Ship marketing information and upgrade access without the Pro campaign or subscription engine. Existing signed unsubscribe links remain usable after downgrade.
- Unify centred storefront tool widths and responsive category navigation.
- Pro: optional email/SMS marketing subscriptions, campaign drafts, background sends, lapsed-customer audiences and SMS followups.
- Add signed unsubscribe links, email list-unsubscribe headers and authenticated SMS STOP handling; preserve transactional notifications.
3.4.0
- Integrated the reviewed 3.4.0 fixes; preserve canonical modifier IDs/names for checkout and separate customer display translations.
- Remove redundant closed pickup messages, improve mobile forms, long dish names and empty-image dialogs.
- Persist retryable translation tasks, track source changes, protect manual edits and support a merchant terminology glossary.
- Load JavaScript catalogues for admin, kitchen and table-board handles; honor customer language in public AJAX and order emails; protect personalized ordering pages from shared caching.
- Add operations health, device heartbeats, escalation and authenticated printer receipts.
- Improved mobile menu and checkout layout, restaurant branding, service hours and resilient total calculation. Price details open by default so customers can see subtotal, tax and fees. Checkout now defaults the phone dialing code from the restaurant's configured country.
- Improved reservation hours, booking limits, reopening checks and retryable email notifications; clarified order status and kitchen ticket handling.
- Added allergen information, menu structured data, optional consent-based analytics, seasonal menu themes, accessibility and translation improvements.
- Improved setup guidance, category and menu management, currency handling and scheduling safeguards.
3.3.2
- Added category management and first-run setup tools; improved currency selection, responsive admin screens and checkout reliability.
3.3.1
- Improved payment and notification reliability, account security, checkout protection and mobile administration.
== Upgrade Notice ==
4.0.0
Stripe card payments and delivery are now in the free plugin, plus AI menu import in the setup guide. Existing settings and orders are kept.
3.4.8
New installs open the setup guide automatically and start with pickup ordering on. Existing settings are not changed.
3.4.7
New accounts are now confirmed with a 6-digit code instead of the password-setup link. Review Checkout & language > Customer sign-up. Existing customers are not affected.
3.4.6
Review Reservations > Tables, dining time & guest services. Existing pending requests receive the configured expiry grace period; confirmed bookings remain confirmed. Back up before updating.
3.4.5
Adds menu migration and private order/customer archives. Imported dishes stay hidden for review. Desktop columns now follow Appearance settings. Future dates off still permits pickup later today. See docs/
migration.md. Theme CSS may need the #yatoon-app prefix.
3.4.2
Adds kitchen workload queues, branded order receipts and emails, and a dismissible order confirmation. Configure actual kitchen capacity in Hours & availability before enabling the capacity strategy.
3.4.1
Adds category hide/restore and strengthens campaign delivery and data cleanup. Review category visibility after updating; individually hidden dishes remain hidden when a category is restored.
3.4.0
Improves checkout country defaults, mobile ordering, reservations and kitchen workflows. Review the restaurant country, hours and notification settings, then test an order.
3.3.2
Adds category management and guided setup, with currency and checkout improvements.
3.3.1
Includes security and payment-reliability improvements.