v4.8.x Bugs CookieConsentPanel

Thema wurde von Marias Einkaufsparadies, 12. August 2023 erstellt.

  1. Marias Einkaufsparadies

    Marias Einkaufsparadies Erfahrener Benutzer

    Registriert seit:
    12. Dezember 2021
    Beiträge:
    371
    Danke erhalten:
    156
    Danke vergeben:
    90
    Ich denke, es ist dem ein oder anderen auch aufgefallen, dass die ein oder andere Funktion (z.B.: Single Sign-on im Dropdown für Login) nicht direkt nach bestätigen und erlauben der Cookies angezeigt werden. Erst, wenn die Seite neu geladen wird, wird die Funktion auch angezeigt. Dies ist leider auch bei anderen Funktionen so, die per CookieConsentPanel erst einmal unterbunden werden. Der Kunde merkt dies nicht und bekommt dadurch die Funktion auch nicht angeboten. Wer kommt schon auf die Idee, dass man nach klicken auf den Button die Seite neu laden muss.

    Ich bin jetzt hingegangen und habe in den Dateien:
    /shop/GXModules/Gambio/CookieConsentPanel/Build/Shop/Javascript/oil.js
    /shop/GXModules/Gambio/CookieConsentPanel/Build/Shop/Javascript/oil.min.js
    /shop/GXModules/Gambio/CookieConsentPanel/Shop/Javascript/oil.js
    bei den Button "Alle Akzeptieren", "Nur Notwendige" und "Speichern" folgende eingefügt.

    Code:
    onclick="setTimeout('location.reload(true)',2000);"
    Dadurch wird auf klicken auf den Button gleichzeitig leicht versetzt die Seite neu gestartet und die Funktionen (z.B.: SSO) nachgeladen und stehen dem Kunden direkt zur Verfügung.

    ------------------------------------------------------------------------------------------------------------------------------------------

    Der Code sieht folgendermaßen dann aus:

    Für "/shop/GXModules/Gambio/CookieConsentPanel/Shop/Javascript/oil.js"

    suche nach:

    Code:
    data-qa="oil-YesButton"
    ersetze es durch:

    Code:
    data-qa="oil-YesButton" onclick="setTimeout('location.reload(true)',2000);"
    (Zweimal vorhanden, also zweimal suchen - Einmal für "Alle Akzeptieren" und einmal für "Speichern")

    und suche nach:

    Code:
    data-qa="oil-only-essentials-button"
    ersetze es durch:

    Code:
    data-qa="oil-only-essentials-button" onclick="setTimeout('location.reload(true)',2000);"
    (Für "Nur Notwendige")

    ------------------------------------------------------------------------------------------------------------------------------------------

    Für "/shop/GXModules/Gambio/CookieConsentPanel/Build/Shop/Javascript/oil.js"

    suche nach:

    Code:
    data-qa=\"oil-YesButton\"
    ersetze es durch:

    Code:
    data-qa=\"oil-YesButton\" onclick=\"setTimeout('location.reload(true)',2000);}\"
    (Zweimal vorhanden, also zweimal suchen - Einmal für "Alle Akzeptieren" und einmal für "Speichern")

    und suche nach:

    Code:
    data-qa=\"oil-only-essentials-button\"
    ersetze es durch:

    Code:
    data-qa=\"oil-only-essentials-button\" onclick=\"setTimeout('location.reload(true)',2000);\"
    (Für "Nur Notwendige")

    ------------------------------------------------------------------------------------------------------------------------------------------

    Für "//shop/GXModules/Gambio/CookieConsentPanel/Build/Shop/Javascript/oil.min.js"

    suche nach:

    Code:
    data-qa="oil-YesButton"
    ersetze es durch:

    Code:
    data-qa="oil-YesButton" onclick="setTimeout('location.reload(true)',2000);"
    (Zweimal vorhanden, also zweimal suchen - Einmal für "Alle Akzeptieren" und einmal für "Speichern")

    und suche nach:

    Code:
    data-qa="oil-only-essentials-button"
    ersetze es durch:

    Code:
    data-qa="oil-only-essentials-button" onclick="setTimeout('location.reload(true)',2000);"
    (Für "Nur Notwendige")



    Leider ist meine Version nicht Updatesicher, daher muß ggf. nach einen Update die Änderung erneut eingepflegt werden.

    Wünschenswert wäre, wenn Gambio diese Änderung direkt ins nächste Update einpflegen würden, da es im Grunde genommen ein "Bug" ist, dass frei gegebene Funktionen nicht direkt nach klick auf die entsprechenden Button auch funktionieren, sondern der Kunde die Seite neu laden müsste.
     
  2. georg

    georg Erfahrener Benutzer

    Registriert seit:
    16. Juni 2011
    Beiträge:
    80
    Danke erhalten:
    11
    Danke vergeben:
    34
    mir ist da eine kleine aber doch recht wichtige Verbesserungsmöglichkeit aufgefallen!

    Wenn man noch keine Cookies akzeptiert hat ist das Login mit Amazon, Facebook, Google nicht möglich und auch nicht angezeigt! Richtig so!

    Wenn man jedoch die Cookies akzeptiert - werden die Buttom für Amazon, Facebook und Google nicht automatisch nachgeladen.
    Mann muß erst die Login Seite aktualisieren um die Buttoms zu sehen, das sollte auf jeden fall automatisch ablaufen!!!

    Das Anliegen:
    Wenn man auf Cookie akzeptieren Clickt sollte im Hintergrund die Seite:
    https://www.ihreseite.de/login.php
    Automatisch aktualisiert werden!

    Das wäre für die Kunden ein sehr großer Vorteil - keiner kommt auf die Idee und aktualisiert die Seite von selber - so wird die Möglichkeit des Login mit Amazon,Facebook und Google nicht verspielt.

    Ist das möglich?

    Ganz lieben Gruß

    Georg
     
  3. Marias Einkaufsparadies

    Marias Einkaufsparadies Erfahrener Benutzer

    Registriert seit:
    12. Dezember 2021
    Beiträge:
    371
    Danke erhalten:
    156
    Danke vergeben:
    90
    Lösung siehe Beitrag 1 ....
     
  4. Patrick (Gambio)

    Patrick (Gambio) Aktives Mitglied
    Mitarbeiter

    Registriert seit:
    15. Juli 2022
    Beiträge:
    36
    Danke erhalten:
    22
    Danke vergeben:
    22
    Moin!

    Das ganze hab ich vor kurzem als Bug aufgenommen: https://tracker.gambio-server.net/issues/70618
    Ich werde den Forumbeitrag hier nochmal ans Ticket hängen. (Falls mir im Ticket noch ein bestimmtes Problem entgangen sein sollte, füg ich das gerne noch hinzu).

    Und danke für die Fix-Idee! Ich geb das mal an die Entwicklung weiter.
     
  5. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    1.105
    Danke erhalten:
    971
    Danke vergeben:
    343
    #5 Dominik Späte, 23. August 2023
    Zuletzt bearbeitet: 23. August 2023
    @Patrick (Gambio)
    Wenn ich mal ketzerisch fragen darf: Ist die Zustimmung an der Stelle überhaupt erforderlich?

    Google, Facebook & PayPal Icon werden via Font Awesome vom eigenen Server geladen. Meinem Verständnis nach signalisiert der Nutzer sein Einverständnis, indem er auf den jeweiligen Link klickt. Damit wäre die Verknüpfung mit dem Cookie Consent Tool obsolet.

    Ja, für Amazon gibt's an der Stelle schon Third Party Requests. Aber man könnte auch hier einen Link vorschalten ähnlich wie bei @Till (Gambio) 's cooler Lösung für die Einbindung von YouTube-Videos.

    Zumindest wollte ich das mal in den Raum geworfen haben :)

    Nachtrag: In meinem Testshop sieht das Amazon SSO ganz anders aus als bei Dirk. Da ist es auch nur ein ganz normaler Link, den anzuzeigen es m.E. kein Einverständnis braucht:

    amazon.png
     

    Anhänge:

  6. Dominik Späte

    Dominik Späte Erfahrener Benutzer

    Registriert seit:
    16. Oktober 2018
    Beiträge:
    1.105
    Danke erhalten:
    971
    Danke vergeben:
    343
    Also, in meinem Testshop werden keinerlei ungefragte Third-Party-Requests durchgeführt, wenn ich die Verknüpfung mit dem Cookie-Consent-Tool auflöse via
    GXModules/Gambio/SingleSignOn/Shop/Overloads/LoginBoxThemeContentView/SSOLoginBoxThemeContentView.inc.php

    Code:
                if ((bool)$ssoConfiguration->get('services/google/active') === true && ($cookieConsentIsNotInstalled || CookiesConsentSsoStore::google()->isActive())) {
                    $ssoServices['googleLoginUrl'] = $loginUrl . '&service=google';
                }
                if ((bool)$ssoConfiguration->get('services/facebook/active') === true && ($cookieConsentIsNotInstalled || CookiesConsentSsoStore::facebook()->isActive())) {
                    $ssoServices['facebookLoginUrl'] = $loginUrl . '&service=facebook';
                }
                if ((bool)$ssoConfiguration->get('services/paypal/active') === true && ($cookieConsentIsNotInstalled || CookiesConsentSsoStore::payPal()->isActive())) {
                    $ssoServices['paypalLoginUrl'] = $loginUrl . '&service=paypal';
                }
                if ((bool)$ssoConfiguration->get('services/amazon/active') === true && ($cookieConsentIsNotInstalled || CookiesConsentSsoStore::amazon()->isActive())) {
                    $ssoServices['amazonLoginUrl'] = $loginUrl . '&service=amazon';
                }
    ersetzen durch:
    Code:
                if ((bool)$ssoConfiguration->get('services/google/active') === true) {
                    $ssoServices['googleLoginUrl'] = $loginUrl . '&service=google';
                }
                if ((bool)$ssoConfiguration->get('services/facebook/active') === true) {
                    $ssoServices['facebookLoginUrl'] = $loginUrl . '&service=facebook';
                }
                if ((bool)$ssoConfiguration->get('services/paypal/active') === true) {
                    $ssoServices['paypalLoginUrl'] = $loginUrl . '&service=paypal';
                }
                if ((bool)$ssoConfiguration->get('services/amazon/active') === true) {
                    $ssoServices['amazonLoginUrl'] = $loginUrl . '&service=amazon';
                }