Description
Visitors should not have to guess what to do when your business is open or
closed. HoursFlow CTA lets you present one clear action for each state, such as
calling while you are open and booking or sending a message after hours.
Configure it once in Settings > HoursFlow, then use the same schedule-aware
CTA through a shortcode or a dynamic block. HoursFlow renders the selected state
on the server, without an account or a remote service.
Who is this for?
HoursFlow CTA is for small businesses, studios, practices, shops, and service
teams that want a simple open-hours action on their WordPress site. It works
well when the action changes with the weekly schedule and the site owner wants
to keep the copy and destination under their control.
Core Features
- One global open CTA and one global closed CTA shared by the shortcode and
the HoursFlow CTA block. - A Monday-to-Sunday schedule using a named IANA business timezone, including
overnight periods such as 22:00 to 02:00. - Sparse per-state block overrides for label, action, status, and hiding the
status without changing the global settings. - Root-relative URLs, HTTPS URLs, and supported
tel:actions, with plain-text
labels and status values. - Global background and text colors, plus WordPress’s built-in block color and
typography controls. - A compact, responsive link with visible keyboard focus and a minimum 44 CSS
pixel target. Open and closed state is not communicated by color alone. - No browser timers, polling, AJAX, remote assets, cookies, or background
requests.
Focused by design
HoursFlow CTA is a focused weekly-hours switch, not a booking system or a full
business-hours manager. Each weekday has one period or is closed. Holiday
exceptions, multiple daily periods, split shifts, date ranges, and automatic
schedule-generated status copy are outside this release. The status message is
written by the administrator and stays exactly as configured.
HoursFlow is intended for a single-site installation. Multisite and network
activation are not claimed by this release.
Usage
Use the shortcode anywhere WordPress processes shortcodes:
[hoursflow_cta]
[hoursflow_cta hide_status="1"]
Only the exact hide_status="1" value hides the selected state’s status. Other
attributes and enclosed content are ignored.
The dynamic hoursflow/cta block uses the same server renderer. It can override
the label, action, or status independently for its open and closed states. A
block can also hide a state’s status; invalid or missing values fall back to
the corresponding global value. Removing all overrides restores the standard
block output.
Schedule and timezone
Times use the saved business timezone, not the visitor, browser, server, or
WordPress site timezone. UTC and named IANA regions such as
America/New_York are valid; raw UTC offsets are not.
A period is half-open: the opening minute is open and the exact closing minute
is closed. A closing time earlier than the opening time continues overnight
into the next day and belongs to the day on which it starts. Equal opening and
closing times are invalid and do not mean 24-hour opening. PHP’s timezone data
handles daylight-saving transitions; there is no separate DST setting.
Appearance and accessibility
Global background and text colors apply to the shortcode and provide the
block defaults. Blank saved colors use #166534 and #FFFFFF; nonblank colors
must be six-digit hexadecimal values and the pair must meet WCAG 2.2 AA
contrast for normal text. Blocks may use WordPress’s built-in color and
typography controls for instance-specific styling.
The frontend CTA is a native keyboard-operable link with visible focus styling,
readable status text, safe wrapping, and no fake button role or live region.
The settings screen includes a keyboard-operable preview that never follows an
action.
Caching
HoursFlow checks the schedule when the shortcode or dynamic block renders.
Cached page HTML can therefore remain stale until the site’s page-cache TTL.
If a site needs a maximum staleness of N minutes, set its cache TTL to no
more than N minutes or arrange boundary purges in the site’s own caching
system. HoursFlow does not manage cache variation or purges.
Privacy
HoursFlow makes no external requests and loads no remote scripts, fonts, images,
or stylesheets. It collects no visitor data, sets no cookies, and performs no
tracking or telemetry. A visitor can follow the configured CTA, and an
administrator can follow the clearly labeled Gasatrya hire or donation link on
Settings > HoursFlow; those are ordinary user-initiated navigations.
Deactivation and uninstall
Deactivation stops HoursFlow behavior but keeps the saved settings for
reactivation. Uninstall deletes the HoursFlow configuration and schema marker.
The plugin creates no custom tables, posts, pages, user metadata, or transient
business data. Reinstalling after uninstall starts unconfigured.
Screenshots

Blocks
This plugin provides 1 block.
- HoursFlow CTA Show the right call to action based on the current business state, with optional per-state content and status visibility.
Installation
- Upload the
hoursflowfolder to/wp-content/plugins/, or upload the production ZIP in Plugins > Add New > Upload Plugin. - Activate HoursFlow CTA.
- Go to Settings > HoursFlow and choose a named IANA timezone.
- Set each weekday to closed or enter one opening and closing time. Add the open and closed labels and actions, then save.
- Add
[hoursflow_cta]or the HoursFlow CTA block to a page.
A fresh activation is unconfigured and renders no CTA until a complete valid configuration is saved. Invalid settings keep the last valid configuration and show field-specific errors.
FAQ
-
Is HoursFlow CTA a booking system?
-
No. It displays a link that you configure. Point the open or closed action at
your existing booking, contact, phone, or other destination. -
Can open and closed states use different actions?
-
Yes. Configure a separate label, action, and optional status for each state.
-
Do overnight hours work?
-
Yes. Enter a closing time earlier than the opening time, such as 22:00 to
02:00. The period carries into the following day. -
Can HoursFlow write the next opening time for me?
-
No. Status text is administrator-authored. Enter wording that is accurate for
your schedule and update it when your message changes. -
Can I configure holidays or multiple shifts?
-
Not in this release. HoursFlow has one weekly period per day and no holiday or
exception calendar. -
Why does a cached page show the previous state?
-
The state is calculated when the page is rendered. A page cache can keep that
HTML until its TTL expires, so set an appropriate TTL or configure boundary
purges in the site’s caching system. -
Does HoursFlow support multisite?
-
This release is designed for a single site. Multisite and network activation
are not claimed.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“HoursFlow — Business Hours CTA” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “HoursFlow — Business Hours CTA” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.1.0
- Initial HoursFlow — Business Hours CTA release.