{"id":260594,"date":"2025-11-27T08:29:30","date_gmt":"2025-11-27T08:29:30","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/monoedge-booking-ordering\/"},"modified":"2025-11-27T08:38:22","modified_gmt":"2025-11-27T08:38:22","slug":"monoedge-booking-ordering","status":"publish","type":"plugin","link":"https:\/\/tah.wordpress.org\/plugins\/monoedge-booking-ordering\/","author":23094217,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.6","stable_tag":"1.0.6","tested":"6.8.5","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Monoedge Booking & Ordering","header_author":"MONOEDGE","header_description":"Add a fast, secure \"Book \/ Order\" button to your WordPress site. Opens Monoedge-hosted booking or mobile ordering (modal or redirect).","assets_banners_color":"434343","last_updated":"2025-11-27 08:38:22","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":132,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.6":{"tag":"1.0.6","author":"monoedge","date":"2025-11-27 08:38:22"}},"upgrade_notice":{"1.0.0":"<p>Initial release of MonoEdge Booking &amp; Ordering plugin.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3403887,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3403887,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3403920,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3403920,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"monoedge\/booking-button":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"monoedge\/booking-button","version":"1.0.6","title":"MonoEdge Booking Button","category":"widgets","icon":"calendar-alt","description":"Add a customizable booking button for MonoEdge reservation system","keywords":["monoedge","booking","reservation","button","restaurant","\u30ec\u30b9\u30c8\u30e9\u30f3","\u98f2\u98df\u5e97","order","\u6ce8\u6587","mobile order","\u30e2\u30d0\u30a4\u30eb\u30aa\u30fc\u30c0\u30fc","menu","\u30e1\u30cb\u30e5\u30fc","\u4e88\u7d04"],"textdomain":"monoedge-booking-ordering","editorScript":"file:.\/index.js","attributes":{"buttonType":{"type":"string","default":"booking"},"storeId":{"type":"string","default":""},"menuDateTime":{"type":"string","default":""},"openMode":{"type":"string","default":"navigate"},"buttonText":{"type":"string","default":"Make Reservation"},"backgroundColor":{"type":"string","default":"#FF6B6B"},"textColor":{"type":"string","default":"#FFFFFF"},"width":{"type":"number","default":200},"height":{"type":"number","default":50},"borderRadius":{"type":"number","default":8},"fontSize":{"type":"number","default":16},"fontWeight":{"type":"number","default":500},"paddingV":{"type":"number","default":12},"paddingH":{"type":"number","default":24},"marginTop":{"type":"number","default":0},"marginBottom":{"type":"number","default":0},"shadowEnabled":{"type":"boolean","default":true},"shadowX":{"type":"number","default":0},"shadowY":{"type":"number","default":4},"shadowBlur":{"type":"number","default":6},"shadowSpread":{"type":"number","default":0},"shadowColor":{"type":"string","default":"#000000"},"shadowOpacity":{"type":"number","default":20},"backgroundOpacity":{"type":"number","default":100},"textOpacity":{"type":"number","default":100}},"supports":{"html":false,"align":["left","center","right","wide","full"]}}},"tagged_versions":["1.0.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3403862,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3403862,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3403862,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3403862,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3403862,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3403862,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3403862,"resolution":"7","location":"assets","locale":""},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3403862,"resolution":"8","location":"assets","locale":""}},"screenshots":{"1":"Initial setup - Login screen","2":"Initial setup - Dashboard overview with store selection and progress tracking","3":"Analytics dashboard with statistics and insights","4":"Bookings dashboard - View and analyze reservation data","5":"Orders dashboard - Track mobile ordering statistics","6":"Customers dashboard - Customer analytics and segmentation","7":"Button &amp; QR Code designer - Create and customize booking buttons (Part 1)","8":"Button &amp; QR Code designer - Real-time preview and QR code generation (Part 2)"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[269,148076,10561,722,20710],"plugin_category":[39,40],"plugin_contributors":[251267],"plugin_business_model":[],"class_list":["post-260594","plugin","type-plugin","status-publish","hentry","plugin_tags-booking","plugin_tags-gutenberg","plugin_tags-ordering","plugin_tags-reservation","plugin_tags-restaurant","plugin_category-business","plugin_category-calendar-and-events","plugin_contributors-monoedge","plugin_committers-monoedge"],"banners":{"banner":"https:\/\/ps.w.org\/monoedge-booking-ordering\/assets\/banner-772x250.png?rev=3403920","banner_2x":"https:\/\/ps.w.org\/monoedge-booking-ordering\/assets\/banner-1544x500.png?rev=3403920","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/monoedge-booking-ordering\/assets\/icon-128x128.png?rev=3403887","icon_2x":"https:\/\/ps.w.org\/monoedge-booking-ordering\/assets\/icon-256x256.png?rev=3403887","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/monoedge-booking-ordering\/assets\/screenshot-1.png?rev=3403862","caption":"Initial setup - Login screen"},{"src":"https:\/\/ps.w.org\/monoedge-booking-ordering\/assets\/screenshot-2.png?rev=3403862","caption":"Initial setup - Dashboard overview with store selection and progress tracking"},{"src":"https:\/\/ps.w.org\/monoedge-booking-ordering\/assets\/screenshot-3.png?rev=3403862","caption":"Analytics dashboard with statistics and insights"},{"src":"https:\/\/ps.w.org\/monoedge-booking-ordering\/assets\/screenshot-4.png?rev=3403862","caption":"Bookings dashboard - View and analyze reservation data"},{"src":"https:\/\/ps.w.org\/monoedge-booking-ordering\/assets\/screenshot-5.png?rev=3403862","caption":"Orders dashboard - Track mobile ordering statistics"},{"src":"https:\/\/ps.w.org\/monoedge-booking-ordering\/assets\/screenshot-6.png?rev=3403862","caption":"Customers dashboard - Customer analytics and segmentation"},{"src":"https:\/\/ps.w.org\/monoedge-booking-ordering\/assets\/screenshot-7.png?rev=3403862","caption":"Button &amp; QR Code designer - Create and customize booking buttons (Part 1)"},{"src":"https:\/\/ps.w.org\/monoedge-booking-ordering\/assets\/screenshot-8.png?rev=3403862","caption":"Button &amp; QR Code designer - Real-time preview and QR code generation (Part 2)"}],"raw_content":"<!--section=description-->\n<p>MonoEdge Booking &amp; Ordering is a WordPress plugin that connects your website to the MonoEdge restaurant management platform. This plugin allows you to add booking and ordering buttons to your site using shortcodes or Gutenberg blocks.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Smart Visual Editor<\/strong> - Real-time preview button designer in WordPress admin<\/li>\n<li><strong>Gutenberg Blocks<\/strong> - Drag-and-drop booking and ordering buttons<\/li>\n<li><strong>Intelligent Dashboard<\/strong> - Analytics with AI-powered insights<\/li>\n<li><strong>Store Progress Management<\/strong> - Track setup completion per store<\/li>\n<li><strong>QR Code Generation<\/strong> - Create trackable QR codes for tables<\/li>\n<li><strong>Multi-Store Support<\/strong> - Manage multiple restaurant locations<\/li>\n<li><strong>No jQuery<\/strong> - Modern vanilla JavaScript implementation<\/li>\n<li><strong>REST API<\/strong> - Extensible API for developers<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.8 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>MonoEdge account (sign up at https:\/\/landing.as3.monoedge.ai)<\/li>\n<\/ul>\n\n<h4>Usage<\/h4>\n\n<p>After activating the plugin:<\/p>\n\n<ol>\n<li>Go to MonoEdge menu in WordPress admin<\/li>\n<li>Login with your MonoEdge credentials<\/li>\n<li>Select your store<\/li>\n<li>Use shortcodes or Gutenberg blocks to add buttons to your site<\/li>\n<\/ol>\n\n<p><strong>Shortcodes:<\/strong><\/p>\n\n<pre><code>[monoedge_booking] - Add a booking button\n[monoedge_order] - Add an ordering button\n<\/code><\/pre>\n\n<p><strong>Gutenberg Blocks:<\/strong><\/p>\n\n<p>Search for \"MonoEdge\" in the block inserter to find booking and ordering blocks.<\/p>\n\n<h3>Third-Party Service<\/h3>\n\n<p><strong>Important: This plugin requires and connects to the MonoEdge external service.<\/strong><\/p>\n\n<h4>What is MonoEdge?<\/h4>\n\n<p>MonoEdge is a cloud-based restaurant management platform that provides booking reservations, mobile ordering, and customer analytics services. This plugin serves as an interface to connect your WordPress website to the MonoEdge service.<\/p>\n\n<h4>Service Usage and Functionality<\/h4>\n\n<p>The plugin communicates with MonoEdge servers to provide the following features:<\/p>\n\n<ul>\n<li><strong>User Authentication<\/strong> - Login and session management for restaurant administrators<\/li>\n<li><strong>Store Management<\/strong> - Retrieve and manage restaurant location information<\/li>\n<li><strong>Analytics Dashboard<\/strong> - Display booking, order, and customer statistics<\/li>\n<li><strong>QR Code Generation<\/strong> - Create QR codes for table-based ordering and reservations<\/li>\n<li><strong>Button Embedding<\/strong> - Display booking and ordering buttons that link to MonoEdge booking system<\/li>\n<\/ul>\n\n<h4>Data Transmission<\/h4>\n\n<p>The plugin sends the following data to MonoEdge servers (https:\/\/landing.as3.monoedge.ai):<\/p>\n\n<p><strong>Authentication Data (when you log in):<\/strong>\n* Email address\n* Password (encrypted via HTTPS)\n* Authentication tokens (JWT)<\/p>\n\n<p><strong>Analytics Requests (when viewing dashboard):<\/strong>\n* Store\/location identifiers (UUID)\n* Date ranges for analytics queries\n* Data type requests (bookings, orders, revenue, customers)<\/p>\n\n<p><strong>QR Code Generation (when creating QR codes):<\/strong>\n* Store identifier\n* QR code type (booking, order, table)\n* Display options (size, format)<\/p>\n\n<p><strong>Important:<\/strong> No end-user data (website visitors) is transmitted to MonoEdge servers by this plugin. Only WordPress administrator data is sent when logged in and using the admin dashboard.<\/p>\n\n<h4>When Data is Sent<\/h4>\n\n<p>Data transmission occurs only when:\n1. You log in to the MonoEdge admin panel within WordPress\n2. You access the analytics dashboard\n3. You generate QR codes or manage button styles\n4. The plugin refreshes authentication tokens<\/p>\n\n<p><strong>No automatic background data transmission occurs.<\/strong> The plugin does not track your website visitors or send any data without your explicit action.<\/p>\n\n<h4>User Consent<\/h4>\n\n<p>By installing and activating this plugin, and by logging in with your MonoEdge credentials, you provide consent for the plugin to communicate with MonoEdge servers as described above. This follows WordPress.org Guideline 7 for Software-as-a-Service plugins, where consent is granted through service registration and plugin activation.<\/p>\n\n<h4>Service Links<\/h4>\n\n<ul>\n<li><strong>Service Website:<\/strong> https:\/\/landing.as3.monoedge.ai<\/li>\n<li><strong>Privacy Policy:<\/strong> https:\/\/landing.as3.monoedge.ai\/top\/resources\/pp<\/li>\n<li><strong>Terms of Service:<\/strong> https:\/\/landing.as3.monoedge.ai\/top\/resources\/tc<\/li>\n<\/ul>\n\n<p>For questions about data handling, privacy, or service terms, please contact MonoEdge support through their website.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>monoedge-booking-ordering<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to MonoEdge menu and login with your MonoEdge credentials<\/li>\n<li>Configure your settings and add buttons to your site<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='do%20i%20need%20a%20monoedge%20account%3F'><h3>Do I need a MonoEdge account?<\/h3><\/dt>\n<dd><p>Yes, you need a MonoEdge account to use this plugin. Sign up at https:\/\/landing.as3.monoedge.ai<\/p><\/dd>\n<dt id='is%20this%20plugin%20free%3F'><h3>Is this plugin free?<\/h3><\/dt>\n<dd><p>Yes, the plugin is free. MonoEdge service pricing varies based on your plan.<\/p><\/dd>\n<dt id='does%20this%20work%20with%20any%20wordpress%20theme%3F'><h3>Does this work with any WordPress theme?<\/h3><\/dt>\n<dd><p>Yes, this plugin works with any WordPress theme that supports Gutenberg blocks.<\/p><\/dd>\n<dt id='can%20i%20customize%20the%20button%20design%3F'><h3>Can I customize the button design?<\/h3><\/dt>\n<dd><p>Yes, the plugin includes a visual button designer with real-time preview.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Fix: Gutenberg block button opacity now works correctly on frontend\n\n<ul>\n<li>Add backgroundOpacity and textOpacity attributes to block.json<\/li>\n<li>Use RGBA format for color output in both editor and PHP render<\/li>\n<li>Extract RGB values directly from ColorPicker to prevent color corruption<\/li>\n<li>Use nullish coalescing (??) to allow opacity 0 (fully transparent)<\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Fix: Correct Analytics API namespace reference (Analytics.php line 115)<\/li>\n<li>Fix: Improve 401 error handling - distinguish login failures from token expiration\n\n<ul>\n<li>Login failures now return 'authentication_failed' error instead of misleading 'token_expired'<\/li>\n<li>Proper error messages for invalid credentials vs expired tokens<\/li>\n<\/ul><\/li>\n<li>Enhancement: Add token parameter to Client constructor for direct token passing<\/li>\n<li>Enhancement: Update login flow to pass tokens directly, avoiding WordPress cache issues<\/li>\n<li>Code Quality: Update @package comments in analytics.js and analytics.css<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Documentation: Add comprehensive third-party service documentation (WordPress.org Guideline 6 compliance)\n\n<ul>\n<li>Detailed explanation of MonoEdge service functionality<\/li>\n<li>Complete data transmission disclosure (what, when, why)<\/li>\n<li>Privacy policy and terms of service links<\/li>\n<li>User consent clarification<\/li>\n<\/ul><\/li>\n<li>Security: Comprehensive input sanitization improvements following WordPress.org guidelines\n\n<ul>\n<li>Use sanitize_key() for all UUID and key-type inputs (store_id, location_uuid, step_id, shop_uuid)<\/li>\n<li>Add safelist validation for enum-type inputs (button type, QR type, analytics data type)<\/li>\n<li>Use sanitize_hex_color() for color inputs in shortcodes<\/li>\n<li>Add map_deep() sanitization for all JSON-decoded data (5 locations)<\/li>\n<\/ul><\/li>\n<li>Code Quality: Naming prefix compliance (WordPress Guideline: Avoid Naming Collisions)\n\n<ul>\n<li>Rename MBO_ constants to MONOEDGE_BO_ (3 \u2192 11 chars)<\/li>\n<li>Rename mbo-btn script handles to monoedge-bo-btn (3 \u2192 11 chars)<\/li>\n<li>Rename mbo_get_analytics_data AJAX action to monoedge_bo_get_analytics_data (3 \u2192 14 chars)<\/li>\n<li>Rename mboAnalytics localize variable to monoedgeBoAnalytics (3 \u2192 14 chars)<\/li>\n<li>Rename mbo_analytics nonce to monoedge_bo_analytics (3 \u2192 14 chars)<\/li>\n<li>Add monoedge_book_order shortcode (8 chars) as primary, keep mono_book_order (4 chars) for backward compatibility<\/li>\n<li>Add monoedge_bo_ prefix to all template variables in analytics.php, button-creator.php, and dashboard.php view files<\/li>\n<li>Rename Mbo namespace to Monoedge\\BookingOrdering (3 \u2192 24 chars)<\/li>\n<li>Rename $is_dev global variable to $monoedge_bo_is_dev in main plugin file (3 \u2192 14 chars)<\/li>\n<\/ul><\/li>\n<li>Code Quality: Remove unused track_event() function to prevent misleading code<\/li>\n<li>Code Quality: Remove unused code to reduce plugin size (~420 lines removed)\n\n<ul>\n<li>Delete unused files: Frontend\/Shortcodes.php (220 lines), REST\/Controller.php (87 lines), Admin\/views\/designer.php (30 lines)<\/li>\n<li>Delete unused AJAX methods: handle_complete_step() (41 lines), handle_generate_qr() (48 lines)<\/li>\n<\/ul><\/li>\n<li>Enhancement: Implement Client::password_reset() method for password reset functionality (endpoint: \/user\/password_reset\/)<\/li>\n<li>Enhancement: Use wp_add_inline_style() for button styles (WordPress coding standards compliance)<\/li>\n<li>Fix: Add version parameter to wp_register_style() for inline button styles (cache busting)<\/li>\n<li>Enhancement: Update Sortable.js library from 1.15.2 to 1.15.6<\/li>\n<li>Enhancement: Update Chart.js library from 4.4.1 to 4.5.0<\/li>\n<li>Enhancement: Exclude screenshot images from plugin distribution ZIP (moved to WordPress.org SVN assets)<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fix: Correct namespace case in Analytics API client instantiation for Linux\/Unix compatibility<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fix: Remove load_plugin_textdomain() call for WordPress.org compatibility (auto-loaded since WP 4.6)<\/li>\n<li>Enhancement: WordPress.org plugin directory compliance improvements<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fix: Add iframe modal support for admin preview button in Button &amp; QR Code page<\/li>\n<li>Fix: Initialize Frontend Assets to enable Gutenberg block buttons<\/li>\n<li>Enhancement: Admin preview button now respects open-mode setting (iframe\/navigate)<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>JWT authentication with MonoEdge API<\/li>\n<li>Multi-store support<\/li>\n<li>Basic shortcodes<\/li>\n<li>Admin dashboard with progress tracking<\/li>\n<li>Button style management<\/li>\n<\/ul>","raw_excerpt":"Seamlessly integrate MonoEdge&#039;s restaurant booking and mobile ordering system into your WordPress site.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/260594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=260594"}],"author":[{"embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/monoedge"}],"wp:attachment":[{"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=260594"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=260594"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=260594"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=260594"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=260594"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tah.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=260594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}