Navigation überspringen

Dies ist das technische Support-Forum für WPML – das mehrsprachige WordPress-Plugin.

Mitlesen können alle, doch nur WPML-Kunden können hier Fragen veröffentlichen. Das WPML-Team antwortet im Forum an 6 Tagen pro Woche, 22 Stunden am Tag.

Sun Mon Tue Wed Thu Fri Sat
- 8:00 – 13:00 9:00 – 13:00 9:00 – 13:00 8:00 – 12:00 8:00 – 12:00 -
- 14:00 – 17:00 14:00 – 18:00 14:00 – 18:00 13:00 – 17:00 13:00 – 17:00 -

Zeitzone des Supporters: Europe/Zagreb (GMT+02:00)

Schlagwörter: 

Dieses Thema enthält 1 Antworten, hat 0 Stimmen.

Zuletzt aktualisiert von Bruno Kos Vor 4 Wochen, 1 Tag.

Assistiert von: Bruno Kos.

Autor Beiträge
April 16, 2025 um 11:05 am #16938163

aliciaW-2

Hintergrund des Themas:
Ich benutze WP Rocket, um die Performance meiner Website versteckter Link zu optimieren. Das Supportteam von WP Rocket hat ein Problem mit der Preloading-Funktion festgestellt, das durch WPML verursacht wird. Ich habe eine PDF-Dokumentation von WP Rocket, die das Problem beschreibt.

Die Symptome:
Die Preloading-Funktion von WP Rocket wird durch WPML behindert oder verunmöglicht.

Fragen:
Wie kann ich das Problem mit der Preloading-Funktion von WP Rocket beheben, das durch WPML verursacht wird?
Kann ich die PDF-Dokumentation an WPML senden, um Unterstützung zu erhalten? Ein Upload auf dieser Supportwebsite von PDF-Dokumenten ist bei WPML nicht möglich. Danke für andere Möglichkeit Ihnen diese PDF-Informationen zuzusenden.

April 16, 2025 um 1:06 pm #16938977

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+02:00)

Um das Problem mit dem Cookie `wcml_client_country` und dessen Einfluss auf die Preloading-Funktion von WP Rocket genauer untersuchen zu können, habe ich eine Sandbox-Testumgebung eingerichtet:

versteckter Link

- WP Rocket ist dort bereits installiert.
- Ich würde dich bitten, dich einzuloggen und die **WPML-Einstellungen wie auf der Live-Seite zu konfigurieren**, insbesondere alles, was mit **Geolocation, Sprachumschaltung oder Währungswahl** zu tun hat.

Sobald die Einstellungen gesetzt sind, kann ich prüfen, **wie und wann der Cookie `wcml_client_country` gesetzt wird**, und ob dieser die Preloading-Funktion von WP Rocket wie vermutet blockiert.

Wenn du zudem die PDF-Datei von WP Rocket über **Dropbox, Google Drive oder Ähnliches** teilen könntest, kann ich diese Information an das WPML-Kompatibilitätsteam weitergeben.

April 19, 2025 um 9:10 am #16948678

aliciaW-2

Ich habe die Einstellungen, soweit möglich, in der Sandbox vorgenommen. Zwei Einstellungen wären bei euch noch vorzunehmen:
- woopayment für Sandbox aktivieren
- MaxMind Geolocation Validation Key erstellen und eingeben

Sobald dies in der Sandbox aktiv ist, kann ich nochmals die Settings überprüfen, damit alles gleich ist wie in unserer Live-Site.

Das PDF Dokument sandten wir bereits als jpg-Bilder in der Ticketnachricht vom APRIL 16, 2025 AT 11:45 AM. WP Rocket Supportteam fasste die Problemstellung darin zusammen (u.a. wo das Mandatory Cookie im php-file gefunden wurde).

Im Moment ist bei uns Geolocation mit MaxMind Key aktiviert und dadurch aber das Preloading bei WP Rocket ausgeschaltet. Das führt dann aber zu langsamen Ladezeiten, da WP Rocket Plugin dem User nicht ein Preload der html-Files zur Verfügung stellen kann.

April 22, 2025 um 10:07 am #16954285

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+02:00)

Ich habe den MaxMind-Schlüssel hinzugefügt, ich glaube nicht, dass wir Woopayments brauchen.

Basierend auf der Dokumentation von WP Rocket und meinen Tests auf der Live-Seite sowie in der WPML-Sandbox habe ich Folgendes festgestellt:

WP Rocket ist aktuell so konfiguriert, dass es das Cookie wcml_client_country als Voraussetzung für das Caching und Preloading benötigt. Dieses Cookie wird durch die Geolokalisierungsfunktion von WPML gesetzt (über MaxMind), sobald ein Nutzer die Seite besucht.

Das Problem ist, dass dieses Cookie in der Regel erst gesetzt wird, wenn ein echter Besucher die Website aufruft. Daher startet WP Rocket den Preload-Prozess nicht, weil es auf das Vorhandensein des Cookies wartet.

Ich habe das im Browser überprüft und kann bestätigen, dass das Cookie gesetzt wird, was auch mit der Konfiguration in der WP Rocket-Datei übereinstimmt.

Meine Frage ist daher: Wird auf der Website direkt beim ersten Laden (also ohne Nutzerinteraktion) unterschiedlicher Inhalt oder eine andere Währung basierend auf dem Land des Besuchers angezeigt?

Falls nein, kann das Cookie wcml_client_country aus der Konfiguration von WP Rocket entfernt werden. Dadurch würde das Preloading wieder wie erwartet funktionieren.

Falls ja, ist dieses Verhalten technisch korrekt, und es müsste gegebenenfalls eine alternative Caching-Strategie eingesetzt werden.

Ich vermute basierend auf der aktiven MaxMind-Geolokalisierung, dass die Website beim ersten Laden automatisch Inhalte, Währungen oder Funktionen je nach Standort des Nutzers anpasst – zum Beispiel durch automatische Währungsauswahl.

Falls das korrekt ist, dann wird das Cookie wcml_client_country tatsächlich direkt beim ersten Besuch benötigt. In diesem Fall darf es nicht aus der WP Rocket-Konfiguration entfernt werden, da sonst falsche Inhalte gecacht werden könnten.

Können Sie mir sagen, ob ich das Problem richtig verstanden habe?

Clipboard_04-22-2025_01.jpg
April 22, 2025 um 2:17 pm #16955616

aliciaW-2

Danke für die Tests und die Erläuterungen. Ich versuche Ihre Frage "Wird auf der Website direkt beim ersten Laden (also ohne Nutzerinteraktion) unterschiedlicher Inhalt oder eine andere Währung basierend auf dem Land des Besuchers angezeigt?" zu beantworten.

Die aktuellen wcml-Einstellungen in unserem Setup sind:
- mit geolocation
- Währung basierend auf Kundenstandort: wcml-setting "Kundenstandort"
- Alle Währungen (CHF; EUR, USD) verfügbar in allen Ländern
- WP Rocket Eintrag für "no cache" (cookies) für "wcml_client_currency"
- WP Rocket: KEIN Preloading

Mit diesen Settings haben wir wie folgt getestet:
Wir löschten zuerst den WP Rocket Cache. Wenn wir mittels dem Tool "Surfshark" verschiedene (Kunden-)Standorte simulieren (zB UK, USA, Deutschland, Frankreich), dann können wir keinen unterschiedlichen Inhalt oder eine andere Währung basierend auf dem Land des Besuchers feststellen. Wir prüften via Google Analytics ob wirklich der Standort zB UK für die Session angezeigt wird ... dies war der Fall. Unsere Startseite petalane.ch oder eine andere gewählte Seite zeigte immer zuerst DEUTSCH und Währung CHF an. Natürlich kann vorsätzlich zB die Startseite EN (petalane.ch/en/) eingegeben werden und korrekterweise kommt dann auch die englische Version der Startseite - aber immer noch mit Währung CHF.

Was wir jedoch feststellen ist, dass der erste Währungswechsel auf der Seite (zB von CHF auf EUR) immer zwei Anläufe benötigt. Erst wenn der Wechsel nochmals verlangt wird, schaltet das System auf EUR um und bleibt dann im genutzten Browser(cache) wohl auch gespeichert. Dies ist überraschend, da bei WP Rocket der Eintrag unter "no chache" (Cookies) der Eintrag für "wcml_client_currency" getätigt ist. Ohne diesen Eintrag funktioniert die Währungsumschaltung gar nie mehr korrekt.

Als Test versuchten wir auch die wcml-Einstellung "Währung basierend auf Seitensprache" (siehe Screenshot). Im Prinzip scheint diese Einstellung keinen Unterschied zur Einstellung "Währung basierend auf Kundenstandort" zu verursachen. Es scheint aber, dass diese Einstellung den Währungswechsel etwas mehr behindert. Wir stellten beim Testen fest, dass wir sogar 2-3 den Währungswechsel mittels des Widget auf den Shopseiten anstossen mussten, bis die gewünschte Währung endlich übernommen wurde. Woran das liegt, konnten wir nicht feststellen. Bei beiden Einstellungen sind die Währungen für alle Sprachen und Länder verfügbar.

Wir sind nun nicht sicher, welche Settings in WP Rocket mit dieser Ausgangslage mehr Performance versprechen. Was wäre nun zu tun?

Danke im Voraus für Ihre Guidance.

Beste Grüsse
Alicia

no_cache_wcml_client_currency.jpg
wcml_setting_Seitensprache.jpg
wcml_setting_Kundenstandort.jpg
April 23, 2025 um 9:06 am #16958661

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+02:00)

Zur Bestätigung und Zusammenfassung des aktuellen Problems:

Die Konfigurationsdatei von WP Rocket enthält das Cookie wcml_client_country als verpflichtende Voraussetzung für das Ausliefern von zwischengespeicherten Inhalten ($rocket_cache_mandatory_cookies = 'wcml_client_country';). Da dieses Cookie jedoch nur bei echten Benutzerbesuchen gesetzt wird, wird die Preload-Funktion von WP Rocket nicht wie gewohnt ausgeführt.

Zum Cookie selbst – das wcml_client_country-Cookie ist für die Kompatibilität zwischen WP Rocket und WooCommerce Multilingual & Multicurrency essenziell, insbesondere wenn Geolokalisierungsfunktionen aktiviert sind. Es sorgt dafür, dass Besucher die korrekten lokalisierten Inhalte und Währungen entsprechend ihrer geografischen Lage angezeigt bekommen. Aus diesem Grund kann das Cookie nicht einfach entfernt werden, ohne die Funktionalität der Lokalisierung zu beeinträchtigen.

Wenn diese Zusammenfassung für Sie stimmig ist, leite ich den Fall gerne an unser Entwicklerteam weiter, damit sie direkt mit den Entwicklern von WP Rocket eine mögliche Lösung prüfen können.

April 23, 2025 um 9:49 am #16958847

aliciaW-2

Vielen Dank für die gute Zusammenfassung. Ich sehe dies genau so wie Sie. Vielen Dank im Voraus für die Weiterleitung an das Entwicklerteam. Ich lasse demnach dieses Ticket offen bis die Entwicklerteams allenfalls eine Lösung zur Problemstellung finden.

April 23, 2025 um 12:24 pm #16959657

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+02:00)

Dies wurde an unser Kompatibilitätsteam weitergeleitet und kann einige Zeit zur Fehlersuche in Anspruch nehmen. Ich melde mich bei Ihnen, sobald ich Neuigkeiten oder Fragen für Sie habe.

Mai 16, 2025 um 5:59 am #17039368

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

Zeitzone: Europe/Zagreb (GMT+02:00)

Unsere Entwickler haben die Dokumentation zur versteckter Link überprüft.

Es scheint, dass das Pre-Caching über WP-CRON-Anfragen erfolgt. Daher vermuten wir, dass der WCML-Hook `wcml_geolocation_is_used` in diesem Kontext nicht geladen wird.

Bitte nehmen Sie folgende Änderung in WCML vor:
`classes/multi-currency/geolocation/GeolocationBackendHooks.php`

Suchen Sie diese Zeile:

class GeolocationBackendHooks implements \IWPML_Backend_Action, IStandAloneAction {

Und ersetzen Sie sie durch:

class GeolocationBackendHooks implements \IWPML_Frontend_Action, \IWPML_Backend_Action, IStandAloneAction {

Sollte dies das Problem beheben, kann WP Rocket die Seiten vorkacheln – allerdings nur für eine Währung. Werden Seiten in anderen Währungen nicht vorab gecacht, sondern erst dann, wenn ein Besucher die Seite in der jeweiligen Währung aufruft.

Das Thema „[Geschlossen] WPML verursacht Preloading Problem in WP Rocket“ ist für neue Antworten geschlossen.