Skip to content

Opening Hours ​

The Opening Hours element lists the days and times a business is open and, if you want it to, tells visitors whether it is open right now. The list is plain HTML; only the current-day marker and the open or closed badge are worked out in the browser.

Adding the element ​

Add an element in the YOOtheme Pro builder and pick Opening Hours from the Planckie Elements group. The builder starts you with a working week, a shorter Saturday and a closed Sunday, so the shape is visible immediately.

Each row is one item: a day or a range of days, a status, and the times. The element renders as soon as it has at least one item.

Content ​

OptionDescription
TitleAn optional headline above the list, for example Opening Hours. Empty hides it — the placeholder in the field is a hint, not a default.
ItemsThe rows of the list.

Opening hours items ​

OptionDescription
DayMonday to Sunday. A row without a day does not render.
Day EndThe last day of a range, for example Friday for Monday – Friday. (single day) leaves the row on one day, and a range may wrap around the end of the week, such as Saturday to Tuesday.
StatusOpen with times, or Closed, 24 Hours or By Appointment, which show a label instead.
Opens / ClosesThe times, as hours and minutes. 9, 9:00, 9.00 and 9 00 are all read correctly.
AM/PMOne per time. — (24h) displays the time in 24-hour form; AM or PM switches that time to 12-hour form.
Custom LabelReplaces the status label on this row alone, for example Closed for renovation. Shown for rows without times.
NoteA line under the row, for example Kitchen closes at 22:00.

A closing time earlier than the opening time is read as closing after midnight, so 20:00 to 02:00 keeps the business open past midnight and the element knows it.

Several rows may cover the same day. Split shifts — Monday to Friday 9:00 – 12:00 and Monday to Friday 13:00 – 17:00 — are two rows, and both are taken into account for the open or closed status.

Settings ​

Title ​

OptionDescription
StyleA heading or text style of the active theme style, from Heading 3X-Large down to Text Small.
Outline textDraws the title as an outline instead of filled type.
DecorationA divider, a bullet or a line vertically centered to the heading.
Font FamilyDefault, Primary, Secondary or Tertiary, where the style has more than one.
ColorMuted, Emphasis, Primary, Secondary, Success, Warning, Danger or Background.
Title Elementh1 to h6, or div. h3 by default.

The group is only active while the Title field has text.

Display ​

OptionDescription
ModeStatic lists the hours and nothing else. Dynamic (Open/Closed status), the default, additionally marks the current day and works out whether you are open right now.
TimezoneAn IANA name such as Europe/London, or a fixed offset such as +01:00. Empty uses the timezone configured for the website, and an unknown value falls back to it as well. Dynamic mode only.
Day Name FormatLong (Monday), Short (Mon) or Narrow (M).
Time Separator– (dash), to or - (hyphen), placed between the two times.
TodayBold text for today marks the current row. Dynamic mode only.

The timezone is the business's, not the visitor's: someone reading the page in Tokyo sees the same open or closed answer as someone across the street.

Status Badge ​

The whole group appears in dynamic mode only.

OptionDescription
PositionAbove list, Below list or None. Above by default.
StyleAlert, a full-width bar; Pill, a rounded tag; or Dot + Text, a coloured dot and the label alone.
Open LabelLeft empty, it reads Open now.
Closed LabelLeft empty, it reads Closed.
Closing TimeShow the closing time in the badge appends today's closing time while you are open.
Closing Time LabelIntroduces that time. Left empty, it reads closes at, giving Open now · closes at 17:00.

The badge takes the success and danger colors of the active theme style for its dot and its tint.

Row Labels ​

OptionDescription
ClosedThe text for rows without hours. Left empty, it reads Closed.
24 HoursLeft empty, it reads Open 24 hours.
By AppointmentLeft empty, it reads By appointment.

These are the defaults for every row of that status; a single row overrides them with its own Custom Label.

Panel and List ​

Panel holds Style — the card and tile variants of the active theme style, or a blank panel — and Padding, which is active once a panel style is set.

List holds Style (Divider, Striped or none), Size (the padding between rows, Default, Large or None) and Text Style (Text Meta, Text Lead, Text Small or Text Large).

Accessibility ​

OptionDescription
ARIA LabelNames the list for assistive technology. Left empty, it reads the title, or Opening hours when there is none.

General and Advanced ​

The General group and the Advanced tab are the standard YOOtheme Pro element settings, documented under Elements for WordPress and Joomla.

Styling ​

The element exposes these classes to Custom CSS, alongside .el-element:

.pe-opening-hours, .pe-opening-hours-title, .pe-opening-hours-list, .pe-opening-hours-item, .pe-opening-hours-today, .pe-opening-hours-day, .pe-opening-hours-time, .pe-opening-hours-note, .pe-opening-hours-status, .pe-opening-hours-status-open, .pe-opening-hours-status-closed

.pe-opening-hours-today is added to the current row, and the badge carries .pe-opening-hours-status-open or .pe-opening-hours-status-closed depending on the answer — the two hooks for giving the states a look of your own. The element defines no CSS custom properties.

Accessibility and reduced motion ​

The list is a labelled ul, and each row is one list item holding the day, the time and any note, so a screen reader reads Monday – Friday, 09:00 – 17:00 as one entry.

The current day carries aria-current="date" whether or not you switch the bold highlight on, so the marker survives for people who do not see the styling. The badge is a role="status" region, which means a screen reader announces it when it appears without stealing focus from whatever the visitor was doing.

Nothing here moves, so there is no animation to reduce.

Notes and limits ​

  • The rows are in the page source; the badge and the current-day marker are not. Without JavaScript the list is complete and correct, and the open or closed answer is simply absent.
  • Day names come from the plugin's own translation catalogue, so they are already in your language in the page source. The browser then relabels them from the lang attribute of the document, which also covers languages the catalogue does not ship yet. The narrow format is the first letter of the day name in that language.
  • The badge refreshes on the minute, and stops refreshing while the browser tab is in the background, catching up as soon as the visitor comes back.
  • Rows with the status Closed, 24 Hours or By Appointment are labels. Only 24 Hours counts as open; by appointment is treated as closed, since it is not walk-in time.
  • When several rows cover today, the first of them gets the current-day marker, while the open or closed answer looks at all of them.
  • Holidays and one-off closures are not part of the element yet. A row is a weekly pattern, so for now an exception needs a note on the affected row, a row with a Custom Label, or a second element. Exception days are planned.

Planckie is an independent add-on and is not affiliated with YOOtheme, Joomla or WordPress. A YOOtheme Pro license is required.

© Planckie

Planckie is an independent add-on and is not affiliated with YOOtheme, Joomla or WordPress. A YOOtheme Pro license is required.