FOX - Currency Switcher for WooCommerce

WooCommerce-Geolokalisierung funktioniert nicht: MaxMind-Schlüssel und Cache

"WooCommerce-Geolokalisierung funktioniert nicht" hat fast immer eine von zwei Ursachen, und keine davon ist das Währungs-Plugin: ein fehlender MaxMind-Schlüssel oder ein Seitencache, der einem Besucher die für einen anderen erstellte Seite ausliefert.

Achtung: Ab WooCommerce v.3.9 wird für die Geolokalisierungsfunktion ein MaxMind-Schlüssel in den WooCommerce-Einstellungen benötigt: wp-admin/admin.php?page=wc-settings&tab=integration&section=maxmind_geolocation
Versuchen Sie, die Geolokalisierungsregeln zu ändern und in verschiedenen Browsern anzusehen, da derselbe Browser Ihnen nur das erste Ergebnis anzeigt. Noch besser: Senden Sie den Link an Freunde, denn wenn der Datenspeicher als transient ausgewählt ist (auch memcached oder redis), sehen Sie auf Ihrem Computer in allen Browsern dasselbe Ergebnis (dieselbe IP) – ein anderer Computer ist erforderlich – teilen Sie den Link mit Freunden. Beispiel: Sie sind in Spanien und möchten die Geolokalisierung überprüfen. Fügen Sie daher beispielsweise JPY hinzu, speichern Sie, gehen Sie zu den Geolokalisierungsregeln und setzen Sie für JPY Spanien. Verwendung der Geolokalisierung verursacht Probleme, scheint bei mir nicht zu funktionieren Öffnen Sie zum Beispiel den Opera-Browser, ich meine einen anderen Browser, den Sie nicht zum Testen Ihrer Website verwendet haben, und Sie werden sehen, dass JPY gesetzt ist! Führen Sie denselben Test nicht im selben Browser durch, den Sie bereits heute verwendet haben. Die Geolokalisierung wird von der nativen WooCommerce-API bereitgestellt, daher sollte sie einwandfrei funktionieren. Jedenfalls verwendet WOOCS die WooCommerce-Funktionalität. Manchmal kommt es vor, dass in grenznahen Orten die Geo-IP ein anderes Land anzeigt, zum Beispiel in Spanien in der Stadt Logroño, dass sie in Frankreich liegt. Genauigkeit: https://www.maxmind.com/en/geoip2-city-accuracy-comparison Ab Version 2.1.8/1.1.8 kann dieser Shortcode zum Testen verwendet werden: [woocs_geo_hello] – fügen Sie ihn in ein normales Text-Widget oder eine beliebige Seite ein, um Informationen zum Status der GeoIP-Funktionalität auf Ihrer Website zu sehen. Kundenanfrage: https://pluginus.net/support/topic/currency-switcher-behaving-abnormally/
Sie können auch Folgendes versuchen: Fügen Sie den nachstehenden Code in Ihre aktuelle functions.php Ihres WP-Theme ein:
add_filter("woocs_geobone_ip",function(){
    return true;
});
Wenn Sie Cache-Plugins verwenden, aktivieren Sie: WooCommerce-Einstellungen -> Allgemein -> Standard-Kundenstandort Verwendung der Geolokalisierung verursacht Probleme, scheint bei mir nicht zu funktionieren Wenn Sie das Rocket-Cache-Plugin verwenden, deaktivieren Sie die Option 'Caching für eingeloggte WordPress-Benutzer aktivieren': Verwendung der Geolokalisierung verursacht Probleme, scheint bei mir nicht zu funktionieren Zum Testen der GeoIP-Funktionalität können Sie folgenden Dienst verwenden: https://www.locabrowser.com
ACHTUNG: Wenn Sie sicher sind, dass die obigen Empfehlungen korrekt umgesetzt wurden, überprüfen Sie, ob die WooCommerce-Geolokalisierungsfunktion auf Ihrer Website grundsätzlich funktioniert: Fügen Sie einfach den Shortcode [woocs_geo_hello] in ein normales Text-Widget ein.

Weitere Beispiele für das Problem:

Das Problem wurde gerade heute gelöst. Ich möchte mit Ihnen teilen, wie es gelöst wurde, nachdem ich mich an meinen Provider und WooCommerce gewandt habe, falls ein Kunde mit demselben Provider ein ähnliches Problem hat. Mein Provider ist Bluehost. Es scheint, dass sie erst vor kurzem begonnen haben, HTTP_X_FORWARDED_FOR mit der statischen IP meines Servers zu befüllen. Vielleicht ist das nach einem Update passiert, ich weiß es nicht. Sie waren nicht sehr hilfreich bei der Bereitstellung von Informationen dazu. WooCommerce war es, das nach einiger Zeit das Problem erkennen und eine Lösung/einen Workaround vorschlagen konnte. WooCommerce prüft in der Regel die folgenden Variablen auf die echte IP (von oben beginnend): HTTP_X_REAL_IP HTTP_X_FORWARDED_FOR REMOTE_ADDR WooCommerce sucht also das Land für diese IP-Adresse anstelle der IP-Adresse, die in REMOTE_ADDR gespeichert ist. WooCommerce erwartet, dass HTTP_X_FORWARDED_FOR das folgende Format hat: Proxyserver können diesen Header wie folgt senden: X-Forwarded-For: client1, proxy1, proxy2 Stellen Sie sicher, dass wir immer nur die erste IP in der Liste senden, die immer die Client-IP sein sollte. WooCommerce schlug einen Workaround vor, der einen Codeausschnitt beinhaltet, der in functions.php eingefügt werden muss, um dies zu überschreiben:
if ( isset( $_SERVER['REMOTE_ADDR'] ) && ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
    $_SERVER['HTTP_X_FORWARDED_FOR'] = $_SERVER['REMOTE_ADDR'];
}
Nach dem Hinzufügen des Codeausschnitts in functions.php funktionierte alles einwandfrei und ich konnte den Währungsumschalter endlich wieder aktivieren :) Hinweis: Es stellte sich auch heraus, dass HostGator ein ähnliches Problem hatte: https://wordpress.org/support/topic/same-ip-address-for-all-orders/page/2/#post-11362720 Viele Grüße, Ezz

Cloudflare

Hallo, Ich nutze dieses Plugin seit Jahren und es hat hervorragend funktioniert, bis wir unseren Server gewechselt haben. Ich habe die meisten im Forum vorgeschlagenen Dinge ausprobiert, aber keinen Erfolg gehabt. Wenn ich das Plugin verwende, zeigt es nur die Euro-Währung an, obwohl es so konfiguriert ist, dass es in der Türkei Türkische Lira anzeigt. Wir verwenden Ubuntu 22.04 auf EC2 mit Cloudpanel und unsere DNS-Einträge bei Cloudflare. Haben Sie einen Vorschlag, wie wir die Standorterkennung wieder aktivieren können? Gelöst: Hallo Pablo und alle, die dies lesen, Vielen Dank für Ihre Unterstützung, leider war das nicht die Ursache meines Problems. Ich konnte es an dem Tag nicht herausfinden, aber jetzt habe ich es gelöst. Unser neuer Server verwendet Nginx/Cloudpanel und das Varnish-Cache-System ist aktiv. Wenn Varnish aktiv ist, erzeugt es eine Art Load-Balancer-Wand vor dem Server. Wenn also ein Benutzer die Website besucht, besucht er tatsächlich zuerst Varnish, und die IP, die an WooCommerce gesendet wird, ist die IP von Varnish. Das Problem wurde gelöst, als ich "real_ip_header CF-Connecting-IP;" zu meiner Vhost-Datei hinzugefügt und dann Varnish Cache deaktiviert habe. Ich arbeite noch daran, wie Varnish und das Währungsumschalter-Plugin zusammenarbeiten können. Wenn ich eine Lösung finde, werde ich sie ebenfalls teilen. Hoffentlich hilft dies anderen Personen, die das gleiche oder ein ähnliches Problem haben.   Quelle: https://pluginus.net/support/topic/problem-with-new-server/
Hinweise zu WP Rocket: FOX funktioniert nicht, während WP Rocket aktiv ist Auch lesen: https://pluginus.net/support/topic/issue-with-switch-currency-geoip/ Auch lesen: /how-to-switch-currency-based-on-billing-address-instead-of-geolocation/