299

Product support

Visit this product's website for support.

Categories

Opening Hours plugin

Manage and display opening hours on your website.

Features

This plugins allows you to store opening hours for multiple locations and display them on your website.

It makes use of the great spatie/opening-hours library. You have direct access to all of the library's features.

  • Store opening hours for multiple locations
  • Set opening hours for each day of the week
  • Add exceptions for specific dates
  • Display the opening hours on your website
  • Schema.org compatible example markup provided
Enter opening hours for multiple locations

OpeningHours component

This plugin provides only a single OpeningHours component. It can be used to display all opening hours for all locations.

[openingHours]
==
{# List all locations #}
{% for location in openingHours.locations %}
    {{ dump(location.openingHours.forWeek()) }}
{% endfor %}

{# If you have only a single location you can access it directly #}
{{ dump(openingHours.location.openingHours.forWeek()) }}

{# You can also access a specific location by its slug #}
{{ dump(openingHours.locationsBySlug['your-location'].openingHours.forWeek()) }}

Access the openingHours property on any location to have access to the full spatie/opening-hours featureset as documented in their README.

{{ dump(location.openingHours.forWeek()) }}
{{ dump(location.openingHours.forWeekCombined()) }}
{{ location.openingHours.asStructuredData() | json_encode }}
{{ location.openingHours.forDay('monday') }}
{{ location.openingHours.isOpenOn('monday') ? 'open' : 'closed' }}
{{ location.openingHours.isClosedOn('monday') ? 'closed' : 'open' }}
{{ location.openingHours.forDate(date('2020-01-01')) }}
{{ location.openingHours.isOpenAt(date('2020-10-01')) ? 'open' : 'closed' }}
{{ location.openingHours.isOpen() ? "We're open!" : "Sorry, we're closed!" }}
{{ location.openingHours.isClosed() ? "Sorry, we're closed!" : "We're open!" }}
{{ "Open until " ~ location.openingHours.nextClose(date('now')).format('Y-m-d H:i') }}
{{ "We'll open again on " ~ location.openingHours.nextOpen(date('now')).format('Y-m-d H:i') }}

Checkout the component's partials for a demo implementation.

Contributing

Bugs and feature requests

If you found a bug or want to request a feature please file a GitHub issue.

Pull requests

PRs are always welcome! Open them against the master branch. If you plan a time consuming contribution please open an issue first and describe what changes you have in mind.

1.0.17

Further date exception improvements

Nov 30, 2021

1.0.16

Fixed problem with migration

Nov 30, 2021

1.0.14

Fixed installation via Composer

Nov 30, 2021

1.0.13

Fixed table schema for exceptions without special hours on never MySQL versions

Nov 30, 2021

1.0.12

Fixed a timezone problem when using date exceptions

Jan 04, 2021

1.0.11

Added SK translations (thanks to @satezmedia)

Jul 20, 2020

1.0.10

Ignoring Timezones in datepicker widgets

Apr 24, 2020

1.0.9

Fixed active backend menu focus

Apr 02, 2020

1.0.8

Fixed Location sorting

Mar 02, 2020

1.0.7

Optimized handling of empty DateException collections

Dec 02, 2019

1.0.6

Added french translations (thanks to @damsfx)

Oct 07, 2019

1.0.5

Added helpers to correctly sort yearly recurring exceptions to opening hours

Sep 04, 2019

1.0.4

Updated dependencies

Aug 30, 2019

1.0.3

Minor backend form updates

Jul 13, 2019

1.0.2

Added batch creation for opening hours

Jul 13, 2019

1.0.1

Initial release.

Jul 12, 2019