
The Opening Hours module adding live open/closed countdowns, a content plugin, overnight hours and more across the 6.x releases.
The Opening Hours module has taken a big step forward. With version 6.0.0 it became a full PRO extension, and the releases since then have added one of its most useful features yet: a live open and closed status that tells visitors exactly when you open or close next, like "closes in 30 min" or "opens Monday 09:00". This post rounds up everything that landed since the 6.0.0 release.
A live status your visitors can read at a glance
The headline feature, added in 6.1.0, is a live opening status. Instead of only showing "open" or "closed", your site can now tell people what happens next and when. Drop the {countdown}, {nextchange}, {reopensat} or {statuslabel} tokens straight into your open and closed messages or the content plugin, and visitors see a status that updates on its own, such as "closes in 30 min" or "opens Monday 09:00". You can add optional "closing soon" and "on a break" texts, set your own threshold for when "closing soon" kicks in, and a timezone-safe JavaScript ticker keeps everything accurate no matter where your visitor is.
A content plugin that puts opening hours anywhere
The first PRO release (6.0.0) introduced a dedicated content plugin, so your opening hours are no longer stuck inside the module position. You can show or hide whole blocks of an article based on your status with conditional tags like {openinghours status="open|closed"}, {opentoday}, {closedtoday} and {exceptionaltoday}, and drop live values inline with {opentime}, {closetime}, {currentdate} and {currenttime}. That makes it easy to write something like "We're open until {closetime} today" right in the body of a page.
That first PRO release packed in a lot more besides:
- Upcoming exceptional openings: a styled block that lists your special opening dates, with a configurable title, styling and number of items.
- Overnight opening hours: ranges that run past midnight now correctly count as open into the early morning.
- Time suffixes and styling: add optional text after opening and closing times, and style exceptional dates with colour, bold, italic or custom CSS.
- Plugin-aware messages: your notes and open/closed messages now run through content plugins, so plugin tags work inside them.
- Debug and test mode: check your configuration against a fixed test date before it goes live.
- More languages: ships with German, Spanish, French, Italian and Dutch, joined by Finnish in 6.0.2.
Other fixes and improvements
The 6.2.0 release sharpens accuracy around tricky edge cases. It fixes {nextchange} showing an opening time on a day marked closed by an exceptional date, recurring exceptional periods that span New Year not applying in January, and day names occasionally showing the previous day just after midnight in non-UTC timezones. Live status tokens inside a module's own messages now always use that module instead of the first one on the page, and rows with broken exceptional dates are quietly ignored rather than breaking the output. Earlier in the series, 6.0.1 fixed untranslated English weekday names, and 6.1.0 added a security improvement that escapes admin-provided parameter values in the module output.
For developers
- Joomla 5.0+ required: the content plugin moved to SubscriberInterface for Joomla 6.1 lazy plugin loading.
- Modern database access: queries now use DatabaseInterface, quoteName and parameter binding.
- Output escaping: admin-provided parameter values are escaped in the module output as a security measure.
- Target a specific module: a new module="ID" attribute works on {nextchange}, {countdown}, {reopensat}, {statuslabel} and {closingsoon}.
- Safer timezone handling: a missing or empty timezone now falls back to UTC instead of throwing an error.
Opening Hours PRO is a simple, honest deal: no usage limits, plus a full year of unlimited downloads and support. See the full release notes and download the Opening Hours module