A simple plugin for setting and getting cookies from within Craft CMS templates.
Clone or download
khalwat Use {% do %} syntax for examples
Signed-off-by: Andrew Welch <andrew@nystudio107.com>
Latest commit d8be2c8 Jul 24, 2018
Permalink
Failed to load latest commit information.
resources/img Updated icon! Dec 12, 2017
src Correct empty detection Jul 22, 2018
.gitignore * Initial push Feb 1, 2017
CHANGELOG.md Version 1.1.10 Jul 22, 2018
LICENSE.txt * Initial push Feb 1, 2017
README.md Use {% do %} syntax for examples Jul 24, 2018
composer.json Version 1.1.10 Jul 22, 2018

README.md

Scrutinizer Code Quality Code Coverage Build Status Code Intelligence Status

Cookies plugin for Craft CMS 3.x

A simple plugin for setting and getting cookies from within Craft CMS templates.

Screenshot

Related: Cookies for Craft 2.x

Requirements

This plugin requires Craft CMS 3.0.0 or later.

Installation

  1. Install with Composer via composer require nystudio107/craft-cookies from your project directory
  2. Install plugin in the Craft Control Panel under Settings > Plugins

You can also install Cookies via the Plugin Store in the Craft AdminCP.

Setting cookies

All three of these methods accomplish the same thing:

{# Set the cookie using 'setCookie' function #}
{% do setCookie( NAME, VALUE, DURATION, PATH, DOMAIN, SECURE, HTTPONLY) %}

{# Set the cookie using 'setCookie' filter #}
{% do NAME | setCookie( VALUE, DURATION, PATH, DOMAIN, SECURE, HTTPONLY) %}

{# Set the cookie using 'set' variable #}
{% do craft.cookies.set( NAME, VALUE, DURATION, PATH, DOMAIN, SECURE, HTTPONLY) %}

They all act as a wrapper for the PHP setcookie function:

More info: (http://php.net/manual/en/function.setcookie.php)

All of the parameters except for NAME are optional. The PATH defaults to / if not specified

Examples

{% do setCookie('marvin', 'martian', now | date_modify("+1 hour").timestamp) %}
{# Sets a cookie to expire in an hour. #}

{% do 'marvin' | setCookie('martian', now | date_modify("+30 days").timestamp) %}
{# Sets a cookie to expire in 30 days. #}

{% do craft.cookies.set('marvin', 'martian', '', '/foo/' ) %}
{# Cookie available within /foo/ directory and sub-directories. #}

Setting Secure cookies

All three of these methods accomplish the same thing:

{# Set the cookie using 'setSecureCookie' function #}
{% do setSecureCookie( NAME, VALUE, DURATION, PATH, DOMAIN, SECURE, HTTPONLY) %}

{# Set the cookie using 'setSecureCookie' filter #}
{% do NAME | setSecureCookie( VALUE, DURATION, PATH, DOMAIN, SECURE, HTTPONLY) %}

{# Set the cookie using 'setSecure' variable #}
{% do craft.cookies.setSecure( NAME, VALUE, DURATION, PATH, DOMAIN, SECURE, HTTPONLY) %}

This function works the same as setCookie but instead of using the PHP setcookie function, it uses the craft()->request->getCookies()->add to add the cookies via Craft. It also utilizes craft->security framework to encrypt and validate the cookie contents between requests.

All of the parameters except for NAME are optional. The PATH defaults to / if not specified

Examples

{% do setSecureCookie('marvin', 'martian', now | date_modify("+1 hour").timestamp) %}
{# Sets a cookie to expire in an hour. #}

{% do 'marvin' | setSecureCookie('martian', now | date_modify("+30 days").timestamp) %}
{# Sets a cookie to expire in 30 days. #}

{% do craft.cookies.setSecure('marvin', 'martian', '', '/foo/' ) %}
{# Cookie available within /foo/ directory and sub-directories. #}

Retrieving cookies

Both of these methods accomplish the same thing:

{# Get the cookie using 'getCookie' function #}
{% do getCookie( NAME ) %}

{# Get the cookie using 'get' variable #}
{% do craft.cookies.get( NAME ) %}

Example

{% do getCookie('marvin') %}
{# Get the cookie using 'getCookie' function #}

{% do craft.cookies.get('marvin') %}
{# Get the cookie using 'get' variable #}

{% if getCookie('marvin') %}
    {% set myCookie = getCookie('marvin') %}
    {{ myCookie }}
{% endif %}

Retrieving Secure cookies

Both of these methods accomplish the same thing:

{# Get the cookie using 'getSecureCookie' function #}
{% do getSecureCookie( NAME ) %}

{# Get the cookie using 'getSecure' variable #}
{% do craft.cookies.getSecure( NAME ) %}

Example

{% do getSecureCookie('marvin') %}
{# Get the cookie using 'getSecureCookie' function #}

{% do craft.cookies.getSecure('marvin') %}
{# Get the cookie using 'getSecure' variable #}

{% if getSecureCookie('marvin') %}
    {% set myCookie = getSecureCookie('marvin') %}
    {{ myCookie }}
{% endif %}

This function works the same as getCookie but it uses craft()->request->getCookie() to retrieve the cookies via Craft. It also utilizes craft->security framework to decrypt and validate the cookie contents between requests.

Example

{% do getSecureCookie('marvin') %}
{# Get the cookie using 'getSecureCookie' function #}

{% do craft.cookies.getSecure('marvin') %}
{# Get the cookie using 'getSecure' variable #}

{% if getSecureCookie('marvin') %}
    {% set myCookie = getSecureCookie('marvin') %}
    {{ myCookie }}
{% endif %}

Deleting cookies

All three of these methods accomplish the same thing:

{# Delete a cookie by passing no VALUE to 'setCookie' function #}
{% do setCookie( NAME ) %}

{# Delete a cookie by passing no VALUE to 'setCookie' filter #}
{% do NAME | setCookie() %}

{# Delete a cookie by passing no VALUE to 'set' variable #}
{% do craft.cookies.set( NAME ) %}

Deleting Secure cookies

All three of these methods accomplish the same thing:

{# Delete a cookie by passing no VALUE to 'setSecureCookie' function #}
{% do setSecureCookie( NAME ) %}

{# Delete a cookie by passing no VALUE to 'setSecureCookie' filter #}
{% do NAME | setSecureCookie() %}

{# Delete a cookie by passing no VALUE to 'setSecure' variable #}
{% do craft.cookies.setSecure( NAME ) %}

Brought to you by nystudio107