All Projects → craftcms → store-hours

craftcms / store-hours

Licence: MIT license
Manage business hours with Craft CMS.

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to store-hours

anchors
Add anchor links to headings in your Craft CMS website content.
Stars: ✭ 47 (-21.67%)
Mutual labels:  craftcms, craft-plugin, craft3, craft2
craft-router
A Craft CMS plugin for using URL segments as filtering criteria on an entry query.
Stars: ✭ 21 (-65%)
Mutual labels:  craftcms, craft-plugin, craft3, craft2
query
Run SQL queries as an admin from the Craft CMS control panel.
Stars: ✭ 14 (-76.67%)
Mutual labels:  craftcms, craft-plugin, craft3, craft2
Inlin-Craft
Plugin for inlining files in templates.
Stars: ✭ 64 (+6.67%)
Mutual labels:  craftcms, craft3, craft2
craft-cookies
A simple plugin for setting and getting cookies from within Craft CMS templates.
Stars: ✭ 36 (-40%)
Mutual labels:  craftcms, craft-plugin, craft3
Guest Entries
Accept anonymous entry submissions with Craft.
Stars: ✭ 100 (+66.67%)
Mutual labels:  craftcms, craft-plugin, craft3
Aws S3
Amazon S3 volume type for Craft CMS
Stars: ✭ 57 (-5%)
Mutual labels:  craftcms, craft-plugin, craft3
craft3-forms
This craft CMS 3 form plugin makes it easy to create and use custom forms with the features the Yii 2 Framework offers. On top of this, the plugin provides even more functionalities for easy implementation of forms in twig templates.
Stars: ✭ 20 (-66.67%)
Mutual labels:  craftcms, craft-plugin, craft3
Craft Preparse Field
Field type that parses twig when an element is saved.
Stars: ✭ 103 (+71.67%)
Mutual labels:  craftcms, craft-plugin, craft3
craft-audit
Audit log for Craft 3
Stars: ✭ 18 (-70%)
Mutual labels:  craftcms, craft-plugin, craft3
Seo
SEO utilities including a unique field type, sitemap & redirect manager
Stars: ✭ 210 (+250%)
Mutual labels:  craftcms, craft-plugin, craft3
Buttonbox
A collection of utility field types for Craft
Stars: ✭ 94 (+56.67%)
Mutual labels:  craftcms, craft-plugin, craft3
Upper
Integrates Edge Caches like Fastly, KeyCDN, Cloudflare and Varnish with Craft.
Stars: ✭ 89 (+48.33%)
Mutual labels:  craftcms, craft-plugin, craft3
AssetSubfolderAccess
Limits user groups to only access certain asset subfolders
Stars: ✭ 18 (-70%)
Mutual labels:  craftcms, craft-plugin, craft2
Generator Craftplugin
generator-craftplugin is a Yeoman generator for Craft CMS plugins
Stars: ✭ 69 (+15%)
Mutual labels:  craftcms, craft-plugin, craft3
Plugins
The master list of Craft 3-compatible plugins
Stars: ✭ 111 (+85%)
Mutual labels:  craftcms, craft-plugin, craft3
Commerce
Fully integrated ecommerce for Craft CMS
Stars: ✭ 144 (+140%)
Mutual labels:  craftcms, craft-plugin, craft3
Craft Imageoptimize
Automatically create & optimize responsive image transforms, using either native Craft transforms or a service like Imgix, with zero template changes.
Stars: ✭ 227 (+278.33%)
Mutual labels:  craftcms, craft-plugin, craft3
Geomate
GeoMate is a friend in need for all things geolocation. IP to geo lookup, automatic redirects (based on country, continent, language, etc), site switcher... You name it.
Stars: ✭ 19 (-68.33%)
Mutual labels:  craftcms, craft-plugin, craft3
Craft Emptycoalesce
Empty Coalesce adds the ??? operator to Twig that will return the first thing that is defined, not null, and not empty
Stars: ✭ 24 (-60%)
Mutual labels:  craftcms, craft-plugin, craft3

Store Hours for Craft CMS

This plugin adds a new “Store Hours” field type to Craft, for collecting the opening and closing hours (or any other time slots) of an organization for each day of the week.

Requirements

This plugin requires Craft CMS 4.0 or later.

Installation

You can install this plugin from the Plugin Store or with Composer.

From the Plugin Store

Go to the Plugin Store in your project’s Control Panel and search for “Store Hours”. Then press Install in its modal window.

With Composer

Open your terminal and run the following commands:

# go to the project directory
cd /path/to/my-project.test

# tell Composer to load the plugin
composer require craftcms/store-hours

# tell Craft to install the plugin
php craft plugin/install store-hours

Customizing Time Slots

Store Hours fields have a setting called “Time Slots” that lets you customize the time columns that will be visible in the field inputs. By default there will be two time slots, “Opening Time” and “Closing Time”, but you can customize those however you like.

A Time Slots field setting with “Open”, “Close”, “Second Open”, and “Second Close” slots defined

Each row you add here will end up adding a new column to the field inputs.

A Store Hours field with four custom time slots

Templating

You can loop through your Store Hours fields to access info for each day of the week (starting with Sunday):

<h3>Opening Hours</h3>
<dl>
  {% for day in entry.<FieldHandle> %}
    <dt>{{ day.name }}</dt>
    <dd>
      {% if day.isBlank %}
        Closed
      {% else %}
        {{ day.open|time }} - {{ day.close|time }}
      {% endif %}
    </dd>
  {% endfor %}
</dl>

The exact time format that will be used when outputting times with the |time filter depends on the current application locale. See the Craft documentation for details on how it can be customized.

Showing a Single Day’s Hours

You can get the hours for a single day using the following methods:

Method Day
getSun() Sunday
getMon() Monday
getTue() Tuesday
getWed() Wednesday
getThu() Thursday
getFri() Friday
getSat() Saturday
getYesterday() Yesterday
getToday() Today
getTomorrow() Tomorrow
<h3>Today’s Hours</h3>
{% set today = entry.<FieldHandle>.today %}
{% if today.isBlank %}
  <p>Sorry, we’re closed today.</p>
  {% set tomorrow = entry.<FieldHandle>.tomorrow %}
  {% if not tomorrow.isBlank %}
    <p>We’ll be back open tomorrow at {{ tomorrow.open|time }}.</p>
  {% endif %}
{% else %}
  <p>We’re open from {{ today.open|time }} to {{ today.close|time }} today.</p>
{% endif %}

Showing a Custom Day Range

To only show certain days of the week (e.g only Monday through Friday), use the getRange() field method. Pass two integers in to represent the start and end days of the range, using this mapping:

Number Day
0 Sunday
1 Monday
2 Tuesday
3 Wednesday
4 Thursday
5 Friday
6 Saturday
{# Only show Monday-Friday #}
{% set range = entry.<FieldHandle>.getRange(1, 5) %}

{% for day in range %}
    {# ... #}
{% endfor %}

Changing the Week Start Day

You can use the getRange() field method to return the full list of days with a different week start day. For example, if you want Monday to be the first day of the week, do this:

{# Show all days with Monday first #}
{% set range = entry.<FieldHandle>.getRange(1, 0) %}

{% for day in range %}
  {# ... #}
{% endfor %}

As a shortcut, you can also skip passing the end day when you want to do this:

{# Show all days with Monday first #}
{% set range = entry.<FieldHandle>.getRange(1) %}

{% for day in range %}
  {# ... #}
{% endfor %}

Determining Whether All Slots are Blank

You can quickly find out whether all the time slots in a day were left blank using the getIsBlank() (isBlank) field method:

<h3>Opening Hours</h3>
<dl>
  {% for day in entry.<FieldHandle> %}
    <dt>{{ day.name }}</dt>
    <dd>
      {% if day.isBlank %}
        Closed
      {% else %}
        {{ day.open|time }} - {{ day.close|time }}
      {% endif %}
    </dd>
  {% endfor %}
</dl>
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].