IngotForge Opening Hours Indicator

Description

Show when your business is open. Create a schedule and display its status, weekly timetable or local clock with shortcodes.

Key features

  • Independent schedules and timezones for multiple locations.
  • Split shifts, overnight hours and 24-hour opening.
  • Manual holidays, recurring closures, special hours and temporary overrides.
  • Custom labels, colours, typography and indicator styles.
  • Optional next opening or closing time and live status updates.
  • Optional holiday and time services; no external account is needed for manual schedules.
  • Schedule duplication, import/export and a built-in manual.

Scripts and styles are included locally, with no CDN dependency or telemetry. Instructions: Opening Hours > Manual & tutorials.

External services

All integrations are optional and require administrator authorization. Requests run on an administrator refresh or a scheduled WordPress task, not from visitors’ browsers or normal shortcode display.

Holiday requests send the configured country, optional subdivision, year/date and relevant filters; clock requests send a UTC timezone. Credentials are included when required. Operators also receive your server’s IP address, request time and plugin-version user agent. The plugin does not add visitor IPs, cookies, names, email addresses or page content to these requests.

Choose a plan permitting your intended use and caching, including any commercial-use, sponsorship or attribution obligations. Credentials are not supplied. Cached results expire; keep scheduled tasks working and clear caches on subscription cancellation. Providers govern their own logs and retention.

Nager.Date / Nager.Holidays – holiday dates

Endpoint: https://nagerholidays.com/api/v4/Holidays/{country}/{year}. Sends country/year and filters national or subdivision dates locally. Check sponsorship requirements for commercial use.
Terms | Privacy

OpenHolidays API – public holidays

Endpoint: https://openholidaysapi.org/PublicHolidays. Sends country, language, date range and optional subdivision. Observe its ODbL data-license requirements.
Terms/data licence | Privacy

Calendarific – holiday dates

Endpoint: https://calendarific.com/api/v2/holidays. Sends API key, country/year, optional location and holiday type. Cached dates expire within 30 days. Provide required attribution unless your agreement waives it.
Terms | Privacy

Abstract Holidays – holiday dates

Endpoint: https://holidays.abstractapi.com/v1/. Sends API key, country/year and month/day in daily mode. Daily mode covers checked dates only; annual access depends on your plan.
Terms | Privacy

API Ninjas – holidays and world time

Endpoints: https://api.api-ninjas.com/v2/holidays and https://api.api-ninjas.com/v1/worldtime. Sends the API key plus country/year and optional type for holidays, or Etc/UTC for time. A storage-eligible plan and explicit entitlement confirmation are required.
Plans | Terms | Privacy

TimeZoneDB – clock synchronization

Endpoint: https://api.timezonedb.com/v2.1/get-time-zone. Sends API key, JSON format, zone lookup and Etc/UTC. Use HTTPS-capable access and a plan allowing your intended commercial or non-commercial use.
Terms and privacy

IPGeolocation.io Time Zone – clock synchronization

Endpoint: https://api.ipgeolocation.io/v3/timezone. Sends API key and Etc/UTC; it does not look up visitors’ IP addresses. Check commercial-use licensing.
Terms | Privacy

timezone.io WorldTime compatibility – clock synchronization

Endpoint: https://worldtime.timezone.io/api/timezone/Etc/UTC. Requests UTC time without a key. Public-service availability may vary.
Terms | Privacy

HolidayAPI-, Enrico- and TimeAPI-compatible adapters

These have no default endpoint. Each requires an authorized HTTPS endpoint, the actual operator’s terms and privacy URLs, and confirmation of permitted requests and caching. Without these settings, no new request is made.

  • HolidayAPI-compatible: sends key, country/subdivision, year and optional public filtering for holiday dates; cache use is capped at 24 hours.
  • Enrico-compatible: sends getHolidaysForYear, year, country, optional region/type and configured authentication for holiday dates.
  • TimeAPI-compatible: sends timeZone=Etc/UTC and configured authentication for clock synchronization.

Provide your operator’s actual policy links in the settings and, where appropriate, your site’s privacy notice. Documentation is available in the built-in Service directory.

Custom holiday or clock service

Configure a public HTTPS GET JSON endpoint, field mappings and optional header, query-key or Bearer authentication. It receives configured parameters and applicable country/region/year/date or UTC-timezone placeholders. No visitor data is added. Enter the actual operator’s terms/privacy URLs and authorize permitted caching before use. No service or policy URL is preselected; the plugin stores, but does not certify, the supplied policies. OAuth, signed requests, POST-only APIs, XML and NTP are not supported.

Privacy

Schedules, settings, credentials and service caches are stored in your WordPress database. Public schedules expose display information through a read-only endpoint; private schedules do not produce public output. Credentials are excluded from public output and exports. Supported encryption is required to save new keys. No tracking cookies or visitor analytics are added. Adapt your site’s privacy notice to the services you enable; a sample is included in TECHNICAL-GUIDE.md.

Developer Integration

See Opening Hours > Manual & tutorials and the included TECHNICAL-GUIDE.md for shortcode options, hooks, API access, migration instructions and data-management details.

Installation

  1. Install from the WordPress plugin directory, or upload the ingotforge-opening-hours-indicator folder to /wp-content/plugins/.
  2. Activate the plugin through Plugins > Installed Plugins.
  3. Open Opening Hours, create a public schedule, select its timezone, enter your hours and holidays, and save.
  4. Add one of the shortcodes below to a Shortcode block on a page, post or supported widget.
  5. Visit Opening Hours > Manual & tutorials for instructions and examples.
  • Open/closed status: [ingotforge_hours id="1"]
  • Weekly timetable: [ingotforge_schedule id="1"]
  • Business-local clock: [ingotforge_clock id="1"]

Replace 1 with your saved schedule ID.

Upgrading an existing installation: Back up first and update without uninstalling. For a different installation folder, follow the included TECHNICAL-GUIDE.md. Do not activate both copies. Check existing shortcodes and custom integrations before upgrading; stored page content is not rewritten automatically.

FAQ

Do I need an API account?

No. Manual schedules use your server clock and the selected business timezone. External holiday and clock services are optional; their accounts, fees and usage conditions vary.

Can I add holidays manually?

Yes. Edit a schedule, add dates under Manual holidays & closures, and save. Manual entries are not erased by service refreshes. Force-open overrides and explicit date-specific opening hours take priority.

Does it support lunch breaks and overnight hours?

Yes. Add multiple daily intervals for breaks and split shifts. 18:00-02:00 continues into the next morning; 00:00-00:00 represents a full day.

Does the display update automatically?

Live status refreshes through your website’s endpoint. JavaScript and endpoint access are required; exclude that endpoint from page/CDN caching. Clocks tick without per-second requests.

Does the weekly timetable include holiday changes?

It shows regular hours. Holidays and special hours affect status; next-change predictions depend on available holiday data.

What happens to my schedules when I uninstall?

Schedules are retained by default. Enable data deletion in Tools & data before uninstalling only when you want to remove them. Service caches are cleared.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“IngotForge Opening Hours Indicator” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

2.1.1

  • Standardized supported shortcode and integration names and updated timetable/clock attribute filters.
  • Updated usage and upgrade guidance. Existing schedules and settings are retained; earlier integrations may need adjustment.

2.0.0

  • Added split shifts, special hours, timetable and clock displays, expanded service integrations, import/export and built-in tutorials.

Earlier releases: changelog.txt.