{"id":378508,"date":"2026-10-04T07:00:48","date_gmt":"2026-10-04T07:00:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/business-hours-holiday-schedule-manager\/"},"modified":"2026-10-04T07:00:36","modified_gmt":"2026-10-04T07:00:36","slug":"webtend-business-hours","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/webtend-business-hours\/","author":23554577,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Webtend Business Hours Manager","header_author":"WebTend","header_description":"A complete Business Hours solution for WordPress \u2014 real-time open\/closed status, weekly schedule, holiday manager, timezone support, Gutenberg block, shortcode, and Schema.org markup.","assets_banners_color":"ecf4fd","last_updated":"2026-10-04 07:00:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/webtend-business-hours","header_author_uri":"https:\/\/profiles.wordpress.org\/webtendhq\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":44,"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":"webtendhq","date":"2026-10-04 07:00:36","revision":3727063}},"upgrade_notice":{"1.0.0":"<p>Initial release. No upgrade steps required.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3727064,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3727061,"resolution":"1544x500","location":"assets","locale":"","width":1545,"height":501},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3727061,"resolution":"772x250","location":"assets","locale":"","width":773,"height":251}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3727061,"resolution":"1","location":"assets","locale":"","width":1200,"height":860},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3727061,"resolution":"2","location":"assets","locale":"","width":1200,"height":620},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3727061,"resolution":"3","location":"assets","locale":"","width":1200,"height":660},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3727061,"resolution":"4","location":"assets","locale":"","width":1200,"height":760},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3727061,"resolution":"5","location":"assets","locale":"","width":1200,"height":760},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3727061,"resolution":"6","location":"assets","locale":"","width":1200,"height":480}},"screenshots":{"1":"Weekly schedule builder \u2014 toggle days, add multiple time slots for lunch breaks","2":"Live open\/closed status badge on the frontend","3":"Holiday manager \u2014 add closed dates or custom hours for special dates","4":"Settings panel \u2014 timezone, labels, Schema.org toggle","5":"Gutenberg block with live editor preview","6":"Classic widget in the widget editor"}},"plugin_section":[],"plugin_tags":[12431,6324,15082,4062,1117],"plugin_category":[40,55],"plugin_contributors":[259418,279548],"plugin_business_model":[],"class_list":["post-378508","plugin","type-plugin","status-publish","hentry","plugin_tags-business-hours","plugin_tags-holiday","plugin_tags-opening-hours","plugin_tags-schedule","plugin_tags-schema","plugin_category-calendar-and-events","plugin_category-seo-and-marketing","plugin_contributors-devhasib","plugin_contributors-webtendhq","plugin_committers-webtendhq"],"banners":{"banner":"https:\/\/ps.w.org\/webtend-business-hours\/assets\/banner-772x250.png?rev=3727061","banner_2x":"https:\/\/ps.w.org\/webtend-business-hours\/assets\/banner-1544x500.png?rev=3727061","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/webtend-business-hours\/assets\/icon-256x256.png?rev=3727064","icon_2x":"https:\/\/ps.w.org\/webtend-business-hours\/assets\/icon-256x256.png?rev=3727064","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/webtend-business-hours\/assets\/screenshot-1.png?rev=3727061","caption":"Weekly schedule builder \u2014 toggle days, add multiple time slots for lunch breaks"},{"src":"https:\/\/ps.w.org\/webtend-business-hours\/assets\/screenshot-2.png?rev=3727061","caption":"Live open\/closed status badge on the frontend"},{"src":"https:\/\/ps.w.org\/webtend-business-hours\/assets\/screenshot-3.png?rev=3727061","caption":"Holiday manager \u2014 add closed dates or custom hours for special dates"},{"src":"https:\/\/ps.w.org\/webtend-business-hours\/assets\/screenshot-4.png?rev=3727061","caption":"Settings panel \u2014 timezone, labels, Schema.org toggle"},{"src":"https:\/\/ps.w.org\/webtend-business-hours\/assets\/screenshot-5.png?rev=3727061","caption":"Gutenberg block with live editor preview"},{"src":"https:\/\/ps.w.org\/webtend-business-hours\/assets\/screenshot-6.png?rev=3727061","caption":"Classic widget in the widget editor"}],"raw_content":"<!--section=description-->\n<p><strong>Webtend Business Hours Manager<\/strong> is a complete business hours management system for WordPress. Show your customers exactly when you're open, automatically update to \"Closed\" status after hours, and let search engines discover your opening times through Schema.org markup \u2014 all without any coding.<\/p>\n\n<p>Whether you run a local shop, a restaurant, a clinic, or a service business, Webtend Business Hours Manager gives you everything you need in a clean, fast, and developer-friendly package.<\/p>\n\n<h4>\u2705 Features<\/h4>\n\n<p><strong>Weekly Schedule Builder<\/strong>\nSet open and close times for each day of the week. Add multiple time slots per day to handle lunch breaks or split shifts \u2014 up to 4 slots per day.<\/p>\n\n<p><strong>Live Open\/Closed Status<\/strong>\nA real-time badge automatically shows whether you're currently open or closed, with a next-open\/next-close countdown. Updates via AJAX without page reload.<\/p>\n\n<p><strong>Holiday &amp; Special Dates Manager<\/strong>\nMark specific dates as closed or with custom hours. Holidays always override the weekly schedule. Easily manage upcoming and past entries from the admin.<\/p>\n\n<p><strong>Timezone Support<\/strong>\nConfigure a dedicated timezone for your location. All open\/closed calculations run against your local time, not the server clock.<\/p>\n\n<p><strong>Schema.org Markup<\/strong>\nAutomatically outputs a <code>LocalBusiness<\/code> JSON-LD script with your <code>openingHours<\/code> property. Improves rich results in Google Search \u2014 no configuration needed.<\/p>\n\n<p><strong>Gutenberg Block<\/strong>\nInsert your business hours table anywhere using the native block editor. Live server-side preview in the editor. Supports wide\/full alignment and colour controls.<\/p>\n\n<p><strong>Classic Widget<\/strong>\nAdd business hours to any widget area via Appearance \u2192 Widgets. Supports both the block-based widget editor and classic widget screens.<\/p>\n\n<p><strong>Shortcode<\/strong>\nUse <code>[webtend_business_hours]<\/code> anywhere \u2014 pages, posts, sidebars, custom templates. Optional <code>show_status<\/code> attribute to toggle the live badge.<\/p>\n\n<h4>\ud83d\udd0c Integration<\/h4>\n\n<ul>\n<li>Works with any WordPress theme \u2014 block themes, classic themes, and page builders<\/li>\n<li>No template overrides \u2014 output is injected via hooks and shortcodes only<\/li>\n<li>AJAX status refresh works without page reload<\/li>\n<li>Zero jQuery dependency \u2014 vanilla ES6 throughout<\/li>\n<li>Translation-ready with full <code>.pot<\/code> file<\/li>\n<\/ul>\n\n<h4>\ud83d\udc68\u200d\ud83d\udcbb For Developers<\/h4>\n\n<p>Webtend Business Hours is built with extensibility in mind:<\/p>\n\n<ul>\n<li>Clean PSR-4 namespace structure under <code>WebtendBusinessHours\\<\/code><\/li>\n<li>Full filter\/action API for overriding output, schema data, and status logic<\/li>\n<li><code>webtend_bh_output_schema<\/code> filter \u2014 conditionally disable JSON-LD per page<\/li>\n<li><code>webtend_bh_schema_type<\/code> filter \u2014 change <code>LocalBusiness<\/code> to any Schema.org type<\/li>\n<li><code>webtend_bh_schema_data<\/code> filter \u2014 add custom fields (address, phone, geo) to the schema<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>webtend-business-hours<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install directly via the WordPress plugin installer.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Go to <strong>Business Hours<\/strong> in the WordPress admin sidebar.<\/li>\n<li>Configure your weekly schedule on the <strong>Weekly Schedule<\/strong> tab.<\/li>\n<li>Add any holidays on the <strong>Holidays<\/strong> tab.<\/li>\n<li>Adjust timezone and display options on the <strong>Settings<\/strong> tab.<\/li>\n<li>Add the Gutenberg block, widget, or shortcode <code>[webtend_business_hours]<\/code> to your pages.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20work%20with%20woocommerce%3F\"><h3>Does this plugin work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. The free version works alongside WooCommerce with no conflicts. WooCommerce-specific features (checkout disable, order cutoff countdown, click &amp; collect) are coming in the Pro version.<\/p><\/dd>\n<dt id=\"how%20does%20the%20live%20status%20update%20work%3F\"><h3>How does the live status update work?<\/h3><\/dt>\n<dd><p>The plugin uses a lightweight AJAX poll (configurable interval, default 60 seconds). The status badge updates without a page reload. Set the interval to 0 in Settings to disable automatic refresh entirely.<\/p><\/dd>\n<dt id=\"can%20i%20show%20different%20hours%20for%20a%20lunch%20break%3F\"><h3>Can I show different hours for a lunch break?<\/h3><\/dt>\n<dd><p>Yes. Each day supports up to 4 time slots. Add a morning slot (e.g. 09:00\u201312:00) and an afternoon slot (13:00\u201317:00) to show a lunch break.<\/p><\/dd>\n<dt id=\"what%20happens%20on%20a%20holiday%3F\"><h3>What happens on a holiday?<\/h3><\/dt>\n<dd><p>Holidays override the weekly schedule entirely. You can mark a holiday as fully closed, or set custom hours for that day (e.g. reduced Christmas Eve hours).<\/p><\/dd>\n<dt id=\"does%20it%20affect%20my%20seo%3F\"><h3>Does it affect my SEO?<\/h3><\/dt>\n<dd><p>Yes, positively. The plugin outputs a <code>LocalBusiness<\/code> JSON-LD schema block with <code>openingHours<\/code> property, which Google uses to display opening hours in rich results and Knowledge Panels.<\/p><\/dd>\n<dt id=\"is%20it%20compatible%20with%20block%20themes%3F\"><h3>Is it compatible with block themes?<\/h3><\/dt>\n<dd><p>Yes. The Gutenberg block, shortcode, and widget all work with block themes (FSE), classic themes, and page builders.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20my%20address%20and%20phone%20to%20the%20schema%3F\"><h3>How do I add my address and phone to the schema?<\/h3><\/dt>\n<dd><p>Use the <code>webtend_bh_schema_data<\/code> filter to merge additional Schema.org properties:<\/p>\n\n<pre><code>add_filter( 'webtend_bh_schema_data', function( $schema ) {\n    $schema['telephone'] = '+1-800-555-0100';\n    $schema['address']   = array(\n        '@type'           =&gt; 'PostalAddress',\n        'streetAddress'   =&gt; '123 Main St',\n        'addressLocality' =&gt; 'Springfield',\n    );\n    return $schema;\n} );\n<\/code><\/pre><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>UX: Save buttons are now disabled during AJAX requests to prevent accidental double-saves on slow connections and re-enabled automatically after the request completes (success or error).<\/li>\n<li>UX: Holiday date picker now shows an inline warning when a past date is selected, preventing stale holiday entries.<\/li>\n<li>SEO: Updated plugin tags to include <code>holiday<\/code>, <code>schema<\/code>, and <code>opening hours<\/code> for better WordPress.org directory discovery.<\/li>\n<li>Initial release<\/li>\n<li>Weekly schedule builder with multi-slot support per day<\/li>\n<li>Holiday \/ special dates manager with DB storage<\/li>\n<li>Real-time open\/closed AJAX status badge<\/li>\n<li>Timezone-aware status calculations<\/li>\n<li>Schema.org LocalBusiness JSON-LD output<\/li>\n<li>Gutenberg block (server-side rendered)<\/li>\n<li>Classic WordPress widget<\/li>\n<li>Shortcode <code>[webtend_business_hours]<\/code><\/li>\n<li>Settings: timezone, time format, custom labels, schema toggle, refresh interval<\/li>\n<li>Plugin action links and requirements check on activation<\/li>\n<\/ul>","raw_excerpt":"Display your business hours, real-time open\/closed status, holiday schedule, and Schema.org markup \u2014 all in one lightweight plugin.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/378508","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=378508"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/webtendhq"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=378508"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=378508"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=378508"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=378508"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=378508"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=378508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}