composer require code16/cookie-consent
Required: publish assets (add this in composer.json post-autoload-dump
scripts)
php artisan vendor:publish --provider='Code16\CookieConsent\CookieConsentServiceProvider' --tag=assets --force
You may publish the config file:
php artisan vendor:publish --provider="Code16\CookieConsent\CookieConsentServiceProvider" --tag=config
And the lang file:
php artisan vendor:publish --provider="Code16\CookieConsent\CookieConsentServiceProvider" --tag=lang
In your blade layout
<head>
{{-- ... --}}
@cookies
<script>
{{-- some injected cookies --}}
</script>
@endcookies
</head>
<body>
{{-- end of the body --}}
@include('cookieConsent::index')
</body>
To let the user manage multiple cookie categories (e.g. analytics, socials)
Add the category key to the @cookies
directive
<head>
{{-- ... --}}
@cookies('analytics')
<script>
{{-- some analytics script --}}
</script>
@endcookies
</head>
Also you must declare the cookie category in config/cookie-consent.php
as follow
[
'cookie_categories' => [
'system' => [
'required' => true,
],
'analytics' => [],
]
];
Categories marked as required
are cannot be opt-out by the user.
To provide explanation texts in the manage dialog, add content to the lang file:
[
'manage' => [
'title' => 'Manage cookies',
'description' => 'About cookies...',
'categories' => [
'system' => [
'title' => 'System cookies',
'description' => "Description text about system cookies",
],
'analytics' => [
'title' => 'Analytics cookies',
'description' => "Description text about analytics cookies",
],
],
]
];
In the page:
@section('content')
<a href="#manage-cookies">Open manage cookies modal</a>
@endsection
If you need to add some custom logic when cookies are accepted (meaning: either when the used clicked on OK in the Bar or after setting his choices on the Modal), you can define a Middleware in the cookie-consent-middleware config key, which will be executed on the POST request.
Example:
// in config/cookie-consent.php
return [
// ...
'middleware' => 'cookie-consent.accepted'
];