{"id":351823,"date":"2026-08-28T12:38:18","date_gmt":"2026-08-28T12:38:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/opening-hours-by-mobal-business-hours-open-status\/"},"modified":"2026-08-28T12:37:45","modified_gmt":"2026-08-28T12:37:45","slug":"mobal-opening-hours","status":"publish","type":"plugin","link":"https:\/\/az-tr.wordpress.org\/plugins\/mobal-opening-hours\/","author":23546553,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Mobal \u2013 Business Hours & Open Status","header_author":"Mobal","header_description":"Business hours on any WordPress site: weekly schedule, holiday exceptions and open\/closed status. Works as a block, Elementor widget or shortcode. Optionally sync from Mobal.","assets_banners_color":"688881","last_updated":"2026-08-28 12:37:45","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.mobal.io\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"mobalio","date":"2026-08-28 12:37:45","revision":3670351}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3670367,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3670367,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3670367,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3670367,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"mobal\/opening-hours":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mobal\/opening-hours","version":"1.0.0","title":"Mobal Opening Hours","category":"widgets","icon":"clock","description":"Show your business hours: weekly schedule, holiday exceptions and a live open\/closed status. Enter hours in WordPress or sync them from Mobal.","keywords":["opening hours","business hours","store hours"],"textdomain":"mobal-opening-hours","supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":false},"typography":{"fontSize":true,"lineHeight":true,"__experimentalFontFamily":true,"__experimentalFontWeight":true},"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true},"shadow":true},"example":{},"editorScript":"file:.\/index.js","render":"file:.\/render.php"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3670367,"resolution":"1","location":"assets","locale":"","width":3456,"height":1854},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3670367,"resolution":"2","location":"assets","locale":"","width":3456,"height":1922},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3670367,"resolution":"3","location":"assets","locale":"","width":3456,"height":1856},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3670367,"resolution":"4","location":"assets","locale":"","width":3456,"height":1926},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3670367,"resolution":"5","location":"assets","locale":"","width":3456,"height":1926},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3670367,"resolution":"6","location":"assets","locale":"","width":3456,"height":1924}},"screenshots":{"1":"Opening hours on a store website, synced from Mobal or entered manually","2":"The native Elementor widget in the builder","3":"The same hours on a dark theme: colors, alignment and styles follow your brand","4":"The Opening Hours block in the block editor, with live preview","5":"Connect to Mobal: profiles, multi-location sync and per-location links","6":"The manual hours editor: split shifts, overnight hours and the weekly grid"}},"plugin_section":[],"plugin_tags":[12431,76538,273546,15082,200749],"plugin_category":[],"plugin_contributors":[278040,278039],"plugin_business_model":[],"class_list":["post-351823","plugin","type-plugin","status-publish","hentry","plugin_tags-business-hours","plugin_tags-elementor","plugin_tags-holiday-hours","plugin_tags-opening-hours","plugin_tags-store-hours","plugin_contributors-alexmobal","plugin_contributors-mobalio","plugin_committers-mobalio"],"banners":{"banner":"https:\/\/ps.w.org\/mobal-opening-hours\/assets\/banner-772x250.png?rev=3670367","banner_2x":"https:\/\/ps.w.org\/mobal-opening-hours\/assets\/banner-1544x500.png?rev=3670367","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mobal-opening-hours\/assets\/icon-128x128.png?rev=3670367","icon_2x":"https:\/\/ps.w.org\/mobal-opening-hours\/assets\/icon-256x256.png?rev=3670367","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mobal-opening-hours\/assets\/screenshot-1.png?rev=3670367","caption":"Opening hours on a store website, synced from Mobal or entered manually"},{"src":"https:\/\/ps.w.org\/mobal-opening-hours\/assets\/screenshot-2.png?rev=3670367","caption":"The native Elementor widget in the builder"},{"src":"https:\/\/ps.w.org\/mobal-opening-hours\/assets\/screenshot-3.png?rev=3670367","caption":"The same hours on a dark theme: colors, alignment and styles follow your brand"},{"src":"https:\/\/ps.w.org\/mobal-opening-hours\/assets\/screenshot-4.png?rev=3670367","caption":"The Opening Hours block in the block editor, with live preview"},{"src":"https:\/\/ps.w.org\/mobal-opening-hours\/assets\/screenshot-5.png?rev=3670367","caption":"Connect to Mobal: profiles, multi-location sync and per-location links"},{"src":"https:\/\/ps.w.org\/mobal-opening-hours\/assets\/screenshot-6.png?rev=3670367","caption":"The manual hours editor: split shifts, overnight hours and the weekly grid"}],"raw_content":"<!--section=description-->\n<p>Business hours the way visitors expect them: a clean weekly schedule, upcoming holiday or exception hours, and a live open\/closed status. <strong>Mobal \u2013 Business Hours &amp; Open Status<\/strong> drops them anywhere on your site with the block editor, Elementor, or a shortcode.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Weekly hours<\/strong> with split shifts (e.g. lunch and dinner service) and overnight hours (e.g. Fri 22:00 \u2013 Sat 04:00).<\/li>\n<li><strong>Special hours<\/strong> for holidays and exceptions. Single days or ranges, closed or with different hours.<\/li>\n<li><strong>Additional hours categories<\/strong>: kitchen, delivery, takeout, drive-through, breakfast, lunch, dinner, happy hour and more.<\/li>\n<li><strong>Open\/closed status<\/strong> and a \"temporarily closed\" mode.<\/li>\n<li><strong>Block editor, Elementor and shortcode<\/strong>: one renderer behind all three, so your hours look the same everywhere. Works with any other page builder via the shortcode.<\/li>\n<li><strong>Fits your theme<\/strong>: inherits your fonts and colors. Text, background, size, status and time colors are configurable per instance.<\/li>\n<li><strong>SEO built in<\/strong>: server-rendered hours (visible without JavaScript) and schema.org <code>openingHoursSpecification<\/code> structured data.<\/li>\n<li><strong>10 display languages<\/strong> built in (English, Finnish, Swedish, Danish, Norwegian, German, Dutch, Polish, Slovenian, Russian). Selected automatically from your site language.<\/li>\n<li><strong>Live preview<\/strong> while you edit.<\/li>\n<li><strong>Optional Mobal sync<\/strong>: connect a free Mobal profile and manage hours once. They update on your website automatically.<\/li>\n<\/ul>\n\n<h4>Standalone by default<\/h4>\n\n<p>Out of the box the plugin stores your hours in your WordPress database and makes no external requests, from your server or from your visitors' browsers.<\/p>\n\n<h4>Optional Mobal sync<\/h4>\n\n<p>Update your hours once in Mobal, and your website follows automatically. No more editing the same holiday hours on your site, on Google, and everywhere else separately. The sync is optional and off until you connect a profile. See the \"External services\" section below for what is sent, when, and to whom.<\/p>\n\n<h4>Shortcode<\/h4>\n\n<pre><code>[mobal_opening_hours] renders with your saved defaults. Every display option can be overridden per instance, e.g.:\n\n[mobal_opening_hours variant=\"compact\" has_open_status=\"1\" open_color=\"#2e7d32\" closed_color=\"#c62828\" font_size=\"14px\" alignment=\"center\"]\n<\/code><\/pre>\n\n<p>With a connected Mobal account, show a specific profile (location) per instance:<\/p>\n\n<pre><code>[mobal_opening_hours profile_id=\"00000000-0000-0000-0000-000000000000\"]\n<\/code><\/pre>\n\n<p>Tip: the settings page's live preview builds this shortcode for you. Pick a profile and press \"Copy shortcode\".<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect to one external service: the Mobal API. The connection is optional and off by default. Out of the box the plugin stores your hours in your WordPress database and makes no external requests, from your server or from your visitors' browsers.<\/p>\n\n<p>If you connect a Mobal profile in Opening Hours \u2192 Connect to Mobal, WordPress periodically fetches that profile's hours from Mobal's API at <code>https:\/\/app.mobal.io\/api\/mobal\/business-hours\/v2<\/code>. This is needed to keep the hours on your site in sync with the hours you manage in Mobal. Your server sends the request when you add a profile, when you press \"Sync now\", and on a 6-hour schedule. The request contains the profile IDs you configured. Its user agent identifies your site (site URL and plugin version) for debugging purposes. No visitor data is ever sent. Your visitors' browsers never contact Mobal. If the sync ever stops (for example your Mobal trial ends), your site keeps showing the last synced hours, and you can switch to manual editing with one click.<\/p>\n\n<p>This service is provided by <a href=\"https:\/\/www.mobal.io\/?utm_source=wordpress.org&amp;utm_medium=referral&amp;utm_campaign=wp_org_repo_listing\">Mobal<\/a>, a marketing platform for local businesses. It keeps your business information and opening hours correct across Google, Apple Maps, Facebook and other channels, and helps you collect and manage customer reviews, all from one dashboard.<\/p>\n\n<p>Mobal terms of service: https:\/\/www.mobal.io\/service-description\nMobal privacy policy: https:\/\/www.mobal.io\/privacy-policy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to the <strong>Opening Hours<\/strong> menu and either connect your Mobal profile or enter your hours manually.<\/li>\n<li>Add the <strong>Mobal Opening Hours<\/strong> block, the Elementor widget, or the <code>[mobal_opening_hours]<\/code> shortcode wherever you want the hours to appear.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20work%20without%20a%20mobal%20account%3F\"><h3>Does the plugin work without a Mobal account?<\/h3><\/dt>\n<dd><p>Yes, fully. Hours are stored in your WordPress database and nothing is ever sent to Mobal unless you explicitly connect a profile.<\/p><\/dd>\n<dt id=\"which%20page%20builders%20are%20supported%3F\"><h3>Which page builders are supported?<\/h3><\/dt>\n<dd><p>The block editor and Elementor natively. Divi, WPBakery, Beaver Builder, Bricks and others work via the shortcode: add a Code\/Text\/Shortcode element and paste <code>[mobal_opening_hours]<\/code>.<\/p><\/dd>\n<dt id=\"in%20which%20time%20zone%20is%20the%20open%2Fclosed%20status%20calculated%3F\"><h3>In which time zone is the open\/closed status calculated?<\/h3><\/dt>\n<dd><p>In the visitor's local time zone (their device clock). Visitors of a local business are usually in the same time zone as the business, so the status matches in practice. If many of your visitors are far away, leave the status indicator off. It is off by default.<\/p><\/dd>\n<dt id=\"my%20hours%20look%20unstyled%20for%20a%20split%20second%20%2F%20my%20optimizer%20plugin%20breaks%20the%20widget\"><h3>My hours look unstyled for a split second \/ my optimizer plugin breaks the widget<\/h3><\/dt>\n<dd><p>The widget script must not be concatenated with other scripts. The plugin marks it with <code>data-no-optimize<\/code>, <code>data-cfasync=\"false\"<\/code> and <code>nowprocket<\/code>. If your optimizer ignores those, exclude <code>businessHoursWidget.js<\/code> from JS combining in its settings.<\/p><\/dd>\n<dt id=\"does%20it%20support%20multiple%20locations%3F\"><h3>Does it support multiple locations?<\/h3><\/dt>\n<dd><p>With a connected Mobal account, yes. Add each profile in Opening Hours \u2192 Connect to Mobal: paste its ID or profile-page URL, and the plugin looks the profile up and shows its name for confirmation. The first profile in the list is the default. New blocks and the plain shortcode use it. Every block and Elementor widget offers a profile dropdown with the profile names (managed in Mobal), and the shortcode takes <code>profile_id=\"...\"<\/code>. Standalone mode stores one set of hours for the site. Multiple locations come from connected Mobal profiles, because that is where the per-location hours are stored.<\/p><\/dd>\n<dt id=\"where%20is%20the%20source%20code%3F\"><h3>Where is the source code?<\/h3><\/dt>\n<dd><p>Everything needed to rebuild the compiled files ships inside the package. The plugin's JavaScript sources are in <code>src\/<\/code>, with the build configuration in <code>package.json<\/code> and <code>webpack.config.js<\/code> (rebuild with <code>npm install &amp;&amp; npm run build<\/code>). The bundled hours widget ships unminified, and its TypeScript\/Vue sources and build configuration are in <code>assets\/widget\/src\/<\/code> (rebuild with <code>npm ci &amp;&amp; npm run build:wp<\/code>). Each has a developer readme. Linter configuration and unit tests are development-only and are not included. The widget bundle contains a dormant fetch path (axios) used only when the widget is embedded outside WordPress. This plugin never uses it: WordPress inlines the hours data server-side, so visitors' browsers make no requests to Mobal.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Business hours on any WordPress site: weekly schedule, holiday exceptions and open\/closed status. Works as a block, Elementor widget or shortcode.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/351823","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=351823"}],"author":[{"embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mobalio"}],"wp:attachment":[{"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=351823"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=351823"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=351823"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=351823"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=351823"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/az-tr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=351823"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}