Works on its own. Enter your weekly hours (two time slots per day for a lunch break) and your special opening hours (holidays, closures, events) in the “Opening hours” menu, then display them anywhere:
[horair_hours] for widgets, page builders (Elementor, Divi…) and classic themes: group="1" merges identical days (“Monday – Friday 09:00–19:00”), specials="0" hides the special hours.[horair_badge]. 27 looks (neon, door sign, bakery, butcher, café…), seasonal decorations, a click shows the week. Drawn in the browser from the hours on your site.openingHoursSpecification to the business declared by Yoast SEO / Yoast Local SEO / Rank Math, or declares a LocalBusiness when none exists (can be turned off).Even better with Horair (optional, 14-day free trial): change your hours once, and Google Business Profile, Facebook and this website follow.
Ready for translation on translate.wordpress.org.
Developers: do_action('horair_hours_updated', $hours) fires on every change; horair_state()['data'] holds the current hours. Markup classes: .horair-hours, .horair-hours__table, .horair-hours__special, .horair-badge-spot.
This plugin works without any external service. When you choose to connect it to Horair (https://horair.com) by pasting a connection key, it talks to the Horair API:
/wp-json/horair/v1/webhook) to https://horair.com/api/public/webhooks/connect (or /disconnect).https://horair.com/api/public/webhooks/hours.horair/v1 route.The open/closed badge script and its fonts are bundled with the plugin: visitors’ browsers never contact Horair. No visitor data is ever sent. Horair terms: https://horair.com/terms – privacy policy: https://horair.com/privacy
The open/closed badge uses the Pacifico, Bebas Neue, Montserrat and Oswald fonts, under the SIL Open Font License 1.1 (assets/widget/fonts/OFL.txt).