Поддержка Проблемы и решения Вывод дисклеймера в зависимости от сессии пользователя

  • День добрый коллеги, на сайте есть две страницы заходя на которые пользователю показываются дисклеймеры с соглашением где необходимо принять условия и остаться на текущей странице или нажать нет и их линкует на сайт google.
    Так вот, эти дисклеймеры выводятся постоянно пользователям сколько бы много раз они туда не заходили, хотелось бы сделать чтобы браузер заносил действие пользователя если он нажал согласен в Cookie.
    Кто знает как это можно организовать?
    Так же использую JS файл для вывода баннера Cookie на сайте от этих ребят https://cookieconsent.osano.com/download/ . Тут как раз у них организовано это если нажал понятно, баннер больше выводиться не будет, так как попадает в cookie текущего браузера.
    Но я не понял как у них это организованно, это я к тому что возможно кто-то поймёт как у них это сделано, или всё таки предложит свой более простой вариант.
    Заранее спасибо всем коллегам кто потратит своё драгоценное время на решение моей задачи.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Модератор Yuri

    (@yube)

    необходимо принять условия и остаться на текущей странице или нажать нет

    Я так понимаю, что js-обработчик кнопки «принимаю» уже есть?
    Выставить куку в JS проще простого

     document.cookie = "disclaimer=accepted; path=/; expires=Tue, 19 Jan 2038 03:14:07 GMT"
    

    С проверкой куки в js несколько сложнее, но я бы проверку делал на php на стороне сервера и выводил дисклеймер if ( ! isset($_COOKIE['disclaimer']) ). А если кука есть, то и нефиг дурно гонять трафик 🙂

    я в таких случаях localStorage браузера использую, куда проще чем куки.

    я в таких случаях localStorage браузера использую, куда проще чем куки.

    Сказать проще простого это хорошо. Что именно нужно сделать чтобы его использовать?

    С проверкой куки в js несколько сложнее, но я бы проверку делал на php на стороне сервера и выводил дисклеймер

    Я так не умею:)

    С проверкой куки в js несколько сложнее, но я бы проверку делал на php на стороне сервера и выводил дисклеймер

    Юрий не могу разобраться как же всё такие загнать нажатие кнопки в cookies.
    Вот к примеру у меня есть кнопка с HTML кодом:

    <div class="alert-modal__btn-wrapper">			
        <button class="alert-modal__btn alert-modal__btn--agree" >Да</button>
        <button class="alert-modal__btn alert-modal__btn--disagree" 
         onclick="location.href='https://google.com'">Нет</button>
    </div>

    И вот такой JS обработчик событий:

    document.body.classList.add('body-overflow'); 
    	let modal = document.querySelector('.alert-modal');
    	let agree = document.querySelector('.alert-modal__btn--agree');
    	let disagree = document.querySelector('.alert-modal__btn--disagree');
    	let alertOverlay = document.querySelector('.alert-overlay');
    
    	agree.addEventListener('click', function () {
    		modal.style.opacity = 0, 5000;
    		setTimeout(modal.style.display = 'none', 10000);
    		setTimeout(document.body.classList.remove('body-overflow'), 50000);
    		alertOverlay.style.opacity = 0;
    		setTimeout((alertOverlay.style.display = 'none'), 10000);
    	})

    Если всё делать на PHP, какую функцию мне нужно прописать в fuctions.php чтобы нажатие кнопки заносилось в cookies браузера? И что нужно прописать в button?
    Заранее благодарю за помощь.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «Вывод дисклеймера в зависимости от сессии пользователя» закрыта для новых ответов.