Jak dostosować moduł
Jeśli masz dużo zaawansowanych lub niestandardowych systemów śledzenia mogą one integrować się ze stroną za pomocą mechanizmu np. iframe. Wtedy moduł Cookies nie ma dostępu do ciasteczek z innej domeny i wymagane jest warunkowe dodawanie takiego kodu do sklepu, dopiero po akceptacji.
Można to zrobić dynamicznie za pomocą javascript, lub też po przeładowaniu strony za pomocą PHP/Smarty
Moduł pozwoli Ci zebrać zgody użytkowników oraz odczytać je zarówno po stronie przeglądarki (Javascript), jak i też po stronie serwera (PHP oraz Smarty)
Podamy tutaj kilka przykładów, jak w pełni dostosować Twoj sklep do wymagań.
Tabela dostępności ciastek
Pierwszy wiersz zawiera informacje o domenie, w której jesteśmy.
Kolumna do domena pliku cookie. W ciele tabeli mamy informację, do jakich ciasteczek możemy się dostać będąc w danej domenie
oraz nimi zarządzać.
Domena | sub.seigi.eu | seigi.eu | google.com |
---|---|---|---|
.sub.seigi.eu | Tak | - | - |
sub.seigi.eu | Tak | - | - |
.seigi.eu | Tak | Tak | - |
seigi.eu | - | Tak | - |
google.com | - | - | Tak |
.google.com | - | - | Tak |
Odczytywanie z poziomu Javascript
document.addEventListener('SeigiCookieEventAcceptedNecessary ', function(){
console.log('Accepted Necessary');
});
document.addEventListener('SeigiCookieEventAcceptedAnalytics', function(){
console.log('Accepted Analytics');
});
document.addEventListener('SeigiCookieEventAcceptedTargeting', function(){
console.log('Accepted Targeting');
});
document.addEventListener('SeigiCookieEventAcceptedPersonalizationSite', function(){
console.log('Accepted PersonalizationSite');
});
document.addEventListener('SeigiCookieEventAcceptedSecurity', function(){
console.log('Accepted Security');
});
Odczytywanie z poziomu PHP
Oto podstawowy kod, który pokazuje jak się komunikować z naszym modułem i odczytywać zgody z poziomu PHP
public function hookDisplayHeader($params) {
// Podstawowe wywołania
seigicookie::isAccepted('necessary');
seigicookie::isAccepted('analytics');
seigicookie::isAccepted('targeting');
seigicookie::isAccepted('person_site');
seigicookie::isAccepted('security');
// necessary jest zawsze na true, jeśli użytkownik zaakceptował zgody
if (seigicookie::isAccepted('necessary')) {
echo "Użytkownik zaakceptował niezbędne ciasteczka. Czyli kliknął w baner Zaakceptuj, odrzuć lub ustawił własne preferencje.";
}
if (seigicookie::isAccepted('analytics')) {
echo "Użytkownik zaakceptował zgodne na analitykę. Możesz uruchomić moduł GA4";
}
}
Bardziej praktyczny przykład użycia modułu, do dodania kodu analityki na stronie
public function hookDisplayHeader($params) {
if(!seigicookie::isAccepted('analytics')){
return ''; // Użytkownik nie zaakceptował zgody na analitykę
}
// OK. Mamy zgode na analitykę. Dodajemy kod śledzący
return '<script src="https://example.com/my_analytics.js"></script>
<script>
const analytics = new my_analytics("ID_12345");
analytics.track("pageview")
</script>';
}
Odczytywanie z poziomu Smarty
<p>necessary {if seigicookie::isAccepted('necessary')}Accepted{else}Denied{/if}</p>
<p>analytics {if seigicookie::isAccepted('analytics')}Accepted{else}Denied{/if}</p>
<p>targeting {if seigicookie::isAccepted('targeting')}Accepted{else}Denied{/if}</p>
<p>person_site {if seigicookie::isAccepted('person_site')}Accepted{else}Denied{/if}</p>
<p>security {if seigicookie::isAccepted('security')}Accepted{else}Denied{/if}</p>
<!-- Realny przykład użycia -->
{if seigicookie::isAccepted('analytics')}
Ten element jest widoczny tylko wtedy, gdy klient zaakceptował Ciasteczka analityczne
<script src="https://example.com/my_analytics.js"></script>
<script>
const analytics = new my_analytics('ID_12345');
analytics.track('pageview')
</script>
{/if}
Pamiętaj, nasz moduł nie może dostosować się do wszystkich innych modułów. Wymagałoby to z naszej strony edycji kodu każdego z tych modułów.
O ile nasz moduł udostępnia możliwość komunikacji z innymi modułami, to moduły analityki innych firm nie udostępniają ustandaryzowanego API, które moglibyśmy wykorzystać.
Dlatego też kwestia ew. dostosowania modułów jest w kwestii właściciela sklepu.
Jesteśmy w stanie tylko i wyłącznie zapewnić dwustronną komunikację modułów z naszego protfolio.