{"id":311974,"date":"2026-05-26T07:48:48","date_gmt":"2026-05-26T07:48:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ordertable\/"},"modified":"2026-05-26T07:48:11","modified_gmt":"2026-05-26T07:48:11","slug":"ss-order-table","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/ss-order-table\/","author":17602124,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.0","requires":"6.2","requires_php":"8.1","requires_plugins":null,"header_name":"OrderTable \u2013 Local Commerce & Operations","header_author":"ShemulS","header_description":"Manage your shop on WordPress: online + walk-in orders, daily sales, invoices, customers. Built on WooCommerce. Skip aggregator commissions.","assets_banners_color":"d6988b","last_updated":"2026-05-26 07:48:11","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/shemuls.com\/donate","header_plugin_uri":"https:\/\/getordertable.com","header_author_uri":"https:\/\/profiles.wordpress.org\/shemuls\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":22,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"shemuls","date":"2026-05-26 07:48:11"}},"upgrade_notice":{"0.1.0":"<p>First public release of OrderTable.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3548702,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3548702,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3548702,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3548702,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3548702,"resolution":"1","location":"assets","locale":"","width":1200,"height":675},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3548702,"resolution":"2","location":"assets","locale":"","width":1200,"height":675},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3548702,"resolution":"3","location":"assets","locale":"","width":1200,"height":675},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3548702,"resolution":"4","location":"assets","locale":"","width":1200,"height":675}},"screenshots":{"1":"Manager dashboard with live order feed.","2":"Kitchen Display System optimized for tablets.","3":"Customer menu page (mobile-first).","4":"Dine-in checkout with password gate."}},"plugin_section":[],"plugin_tags":[259403,10561,20710,11787,286],"plugin_category":[39,45],"plugin_contributors":[255405],"plugin_business_model":[],"class_list":["post-311974","plugin","type-plugin","status-publish","hentry","plugin_tags-dine-in","plugin_tags-ordering","plugin_tags-restaurant","plugin_tags-retail","plugin_tags-woocommerce","plugin_category-business","plugin_category-ecommerce","plugin_contributors-shemuls","plugin_committers-shemuls"],"banners":{"banner":"https:\/\/ps.w.org\/ss-order-table\/assets\/banner-772x250.png?rev=3548702","banner_2x":"https:\/\/ps.w.org\/ss-order-table\/assets\/banner-1544x500.png?rev=3548702","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ss-order-table\/assets\/icon-128x128.png?rev=3548702","icon_2x":"https:\/\/ps.w.org\/ss-order-table\/assets\/icon-256x256.png?rev=3548702","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ss-order-table\/assets\/screenshot-1.png?rev=3548702","caption":"Manager dashboard with live order feed."},{"src":"https:\/\/ps.w.org\/ss-order-table\/assets\/screenshot-2.png?rev=3548702","caption":"Kitchen Display System optimized for tablets."},{"src":"https:\/\/ps.w.org\/ss-order-table\/assets\/screenshot-3.png?rev=3548702","caption":"Customer menu page (mobile-first)."},{"src":"https:\/\/ps.w.org\/ss-order-table\/assets\/screenshot-4.png?rev=3548702","caption":"Dine-in checkout with password gate."}],"raw_content":"<!--section=description-->\n<p>OrderTable turns WordPress into a complete operations system for any local business \u2014 restaurants, retail shops, salons, repair shops, pharmacies. One place to take orders (online AND from walk-in customers), run the kitchen \/ counter \/ service queue, track daily sales and revenue, send branded invoices, and manage your regulars. No 15-30% commission to delivery aggregators, no separate point-of-sale software, no spreadsheets glued together with hope.<\/p>\n\n<p>OrderTable works on its own with a built-in menu and a cash-first checkout. <strong>WooCommerce is optional<\/strong> \u2014 when it's active, OrderTable uses your existing WooCommerce products as the catalog and lets customers pay online through any WooCommerce gateway (Stripe, PayPal, SSLCommerz, bKash, and more). Without WooCommerce, you still get the full menu, ordering, dashboard, kitchen display, invoices, and customer tools.<\/p>\n\n<p><strong>Key features<\/strong><\/p>\n\n<ul>\n<li>Three order modes \u2014 Delivery, Pickup, Dine-in \u2014 each with its own checkout flow.<\/li>\n<li>Password-protected dine-in \u2014 a daily-rotating password keeps fake orders from outside the venue.<\/li>\n<li>Hybrid product catalog \u2014 sell the same item online and in-house with optional per-mode pricing.<\/li>\n<li>Manager dashboard with live orders, kitchen \/ order display, analytics, and invoicing.<\/li>\n<li>Cash workflow built in. For online payments, hand off to any WooCommerce gateway \u2014 Stripe, PayPal, SSLCommerz, bKash, and others your store already supports.<\/li>\n<li>Translation-ready (<code>order-table<\/code> text domain) \u2014 community translations welcome on translate.wordpress.org.<\/li>\n<li>Customer-facing menu shortcode + an Elementor \"Menu Display\" widget. Additional widgets and Gutenberg blocks ship with OrderTable Pro.<\/li>\n<li>Themeable templates, REST API, hooks and filters throughout \u2014 agency-friendly.<\/li>\n<\/ul>\n\n<p><strong>Why OrderTable?<\/strong><\/p>\n\n<p>OrderTable covers both online ordering AND in-store workflow, designed from day one for small operators who run both at once. No commission to aggregators, no separate point-of-sale, no spreadsheets \u2014 one plugin handles the full shop.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>OrderTable stores order data locally inside your own WordPress database \u2014 nothing is sent to any third-party service.<\/p>\n\n<p><strong>Customer data stored per order:<\/strong><\/p>\n\n<ul>\n<li>Name<\/li>\n<li>Phone number<\/li>\n<li>Email address (optional, captured when the customer provides one at checkout)<\/li>\n<li>Delivery address (only when the customer selects Delivery mode)<\/li>\n<li>Order line items and totals<\/li>\n<li>Payment method and status<\/li>\n<\/ul>\n\n<p><strong>Customer recall cookie<\/strong><\/p>\n\n<p>When a customer places an order from the storefront, OrderTable sets an encrypted cookie containing only the customer's phone (so they can see their previous orders on their next visit). The cookie expires after the configured retention window (default: 90 days) and is removable by the customer at any time by clearing site cookies.<\/p>\n\n<p><strong>Audit log<\/strong><\/p>\n\n<p>Privileged actions performed by site staff (status changes, password rotations, order deletes, etc.) are logged with the staff user ID, timestamp, IP address, and User-Agent string. The audit log lives in your database and is never transmitted externally. Customer anonymisation removes PII from prior orders without losing the audit trail.<\/p>\n\n<p><strong>External services<\/strong><\/p>\n\n<p>The free version of OrderTable does NOT connect to any external service out of the box. Online payment, when enabled, hands off to WooCommerce's own gateways \u2014 those gateways have their own privacy practices, documented by the WooCommerce gateway plugin you install.<\/p>\n\n<p>The <code>ordertable\/frontend\/webfonts_url<\/code> filter is intentionally empty by default \u2014 no external webfont stylesheet is requested. Site owners who explicitly return a URL from that filter (for example, a Google Fonts CSS URL) take responsibility for disclosing that third-party connection in their own site privacy notice.<\/p>\n\n<h3>External services<\/h3>\n\n<p>OrderTable makes <strong>no<\/strong> outbound network calls in its default configuration. Every feature \u2014 invoices, QR codes, customer share links, order notifications \u2014 runs entirely on your own server.<\/p>\n\n<p>The areas below are the only places the plugin can be configured to reach the outside world, and each is opt-in by the site owner:<\/p>\n\n<p><strong>1. WhatsApp click-to-chat (<code>https:\/\/wa.me\/<\/code>) \u2014 when staff click \"Share via WhatsApp\"<\/strong><\/p>\n\n<p>When a staff member clicks the \"Share via WhatsApp\" button on an order, the browser is redirected to <code>https:\/\/wa.me\/{phone}?text={pre-filled message}<\/code>. This is a redirect from the staff's browser to WhatsApp's own click-to-chat endpoint; the plugin never contacts WhatsApp servers directly from PHP. The customer's phone number and a short pre-filled message (restaurant name, order number, total, optional tracking URL) are passed in the URL.<\/p>\n\n<ul>\n<li>Service provider: WhatsApp \/ Meta<\/li>\n<li>Terms: https:\/\/www.whatsapp.com\/legal\/business-terms<\/li>\n<li>Privacy: https:\/\/www.whatsapp.com\/legal\/privacy-policy<\/li>\n<\/ul>\n\n<p><strong>2. Telegram share endpoint (<code>https:\/\/t.me\/share\/url<\/code>) \u2014 when staff click \"Share via Telegram\"<\/strong><\/p>\n\n<p>Same pattern as WhatsApp: the staff's browser is redirected to Telegram's official share URL with the order tracking link and a short message. The plugin makes no server-to-server call.<\/p>\n\n<ul>\n<li>Service provider: Telegram<\/li>\n<li>Terms: https:\/\/telegram.org\/tos<\/li>\n<li>Privacy: https:\/\/telegram.org\/privacy<\/li>\n<\/ul>\n\n<p><strong>3. Facebook Messenger (<code>https:\/\/m.me\/<\/code>) \u2014 when staff click \"Share via Messenger\"<\/strong><\/p>\n\n<p>Browser redirect to Messenger using the Facebook Page username the site owner configures under Settings \u2192 Notifications. No data is sent from the server.<\/p>\n\n<ul>\n<li>Service provider: Meta \/ Facebook<\/li>\n<li>Terms: https:\/\/www.facebook.com\/legal\/terms<\/li>\n<li>Privacy: https:\/\/www.facebook.com\/privacy\/policy\/<\/li>\n<\/ul>\n\n<p><strong>4. Custom webfont URL \u2014 opt-in only<\/strong><\/p>\n\n<p>The <code>ordertable\/frontend\/webfonts_url<\/code> filter is empty by default. A theme or site owner that explicitly returns a URL (e.g. a self-hosted webfont stylesheet, or a Google Fonts CSS URL) accepts responsibility for any third-party request that URL triggers. No webfont URL ships with the plugin.<\/p>\n\n<p><strong>5. WooCommerce payment gateways \u2014 when an online payment is taken<\/strong><\/p>\n\n<p>The plugin reuses whatever WooCommerce payment gateway plugins the site already has installed (Stripe, PayPal, SSLCommerz, bKash, etc.). Each gateway has its own privacy \/ terms documentation, surfaced by the respective gateway plugin's own readme.<\/p>\n\n<p><strong>Right to be forgotten (GDPR)<\/strong><\/p>\n\n<p>The \"Anonymise customer\" feature (Pro) replaces stored PII with placeholders across every matching order while keeping the audit log intact. Free admins can manually delete a customer record from the Customers screen.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>order-table<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install via the Plugins screen.<\/li>\n<li>Activate <strong>OrderTable<\/strong> through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>(Optional) Activate <strong>WooCommerce<\/strong> to use your existing products as the catalog and to accept online payments. OrderTable also works standalone with its built-in menu and cash checkout.<\/li>\n<li>Run the Setup Wizard from the <strong>OrderTable<\/strong> menu.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20woocommerce%3F\"><h3>Does this require WooCommerce?<\/h3><\/dt>\n<dd><p>No. OrderTable works standalone with a built-in menu and a cash-first checkout. WooCommerce is optional: when it's active, OrderTable uses your existing WooCommerce products as the catalog and enables online payments through any WooCommerce gateway. You can install WooCommerce at any time \u2014 OrderTable will pick it up automatically.<\/p><\/dd>\n<dt id=\"can%20the%20same%20product%20be%20sold%20online%20and%20dine-in%3F\"><h3>Can the same product be sold online and dine-in?<\/h3><\/dt>\n<dd><p>Yes \u2014 toggle modes per product, with optional separate pricing for each.<\/p><\/dd>\n<dt id=\"how%20does%20the%20dine-in%20password%20work%3F\"><h3>How does the dine-in password work?<\/h3><\/dt>\n<dd><p>A daily password is generated automatically (or manually). Customers scanning the table QR are required to enter today's password before submitting an order \u2014 preventing fake orders from outside the restaurant.<\/p><\/dd>\n<dt id=\"how%20do%20i%20get%20support%3F\"><h3>How do I get support?<\/h3><\/dt>\n<dd><p>Email <strong>getordertable@gmail.com<\/strong> or visit the contact page at <a href=\"https:\/\/getordertable.com\/support\">getordertable.com\/support<\/a>. Include your WordPress version, OrderTable version, active theme, and a screenshot of the issue \u2014 speeds up the response.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First public release.<\/li>\n<li>Three order modes: Delivery, Pickup, Dine-in.<\/li>\n<li>Daily-rotating password protection for dine-in orders.<\/li>\n<li>Manager dashboard with live order feed and today's revenue.<\/li>\n<li>Kitchen \/ Order Display screen (tablet-optimised).<\/li>\n<li>Hybrid product catalog with per-mode pricing.<\/li>\n<li>Tables management with QR-friendly URLs.<\/li>\n<li>Customer records (Phase E) with phone + email dedup.<\/li>\n<li>Invoice generation in three formats (thermal 58mm \/ 80mm + A4).<\/li>\n<li>Analytics page with revenue trends and top-items breakdown.<\/li>\n<li>Industry-aware label resolver \u2014 Restaurant \/ Retail \/ Service \/ Generic vocabulary.<\/li>\n<li>Elementor \"Menu Display\" widget with full styling controls.<\/li>\n<\/ul>","raw_excerpt":"Manage your shop on WordPress: online + walk-in orders, daily sales, invoices, customers. Works standalone; optional WooCommerce sync.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/311974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=311974"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/shemuls"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=311974"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=311974"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=311974"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=311974"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=311974"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=311974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}