WOOCS - Sélecteur de devise WooCommerce

L'utilisation de la géolocalisation pose des problèmes, ne semble pas fonctionner pour moi

Attention: de WooCommerce v.3.9 pour la fonctionnalité de géolocalisation clé maxmind requise dans les paramètres de woocommerce : wp-admin/admin.php?page=wc-settings&tab=integration&section=maxmind_geolocation


Essayez de modifier les règles de géolocalisation et regardez-les dans différents navigateurs, car le même navigateur ne vous montrera que le premier résultat. Encore mieux d'envoyer un lien aux amis, car si le stockage de données est sélectionné comme transitoire (aussi memcached ou redis) vous verrez le même résultat dans tous les navigateurs de votre ordinateur (le même IP) – un autre ordinateur nécessaire – partager le lien avec des amis.

Exemple:

Vous êtes en Espagne et souhaitez vérifier la géolocalisation, alors ajoutez JPY par exemple, enregistrez, accédez aux règles géo et pour JPY, définissez l'Espagne 

Ouvrez le navigateur Opera par exemple, je veux dire tout autre navigateur que vous n'avez pas utilisé pour tester votre site et vous verrez que JPY est défini ! Ne faites pas déjà le même test dans le même navigateur, aujourd'hui exactement….

GeoLocation fourni par l'API native woocommerce native, donc cela devrait fonctionner parfaitement … De toute façon, WOOCS utilise la fonctionnalité woocommerce. Il arrive parfois que dans les endroits proches de la frontière, l'adresse géographique géographique montre un autre pays, par exemple en Espagne dans la ville de Logroño montre que c'est en France.

Précision : https://www.maxmind.com/en/geoip2-city-accuracy-comparison

A partir de la version 2.1.8/1.1.8 son utilisation possible pour tester ce shortcode : [woocs_geo_hello] - déposez-le habituel text-widget ou n'importe quelle page pour voir des informations sur l'état de la fonctionnalité GeoIp sur votre site.


Vous pouvez également essayer ensuite - insérez le code ci-dessous dans votre fichier de thème wp actuel functions.php :

add_filter("woocs_geobone_ip",function(){ return true; });

Si vous utilisez des plugins de cache, activez : Paramètres WooCommerce -> Général -> Emplacement par défaut du client

Si vous utilisez le plugin de cache de fusée, désactivez l'option 'Activer la mise en cache pour les utilisateurs WordPress connectés':

Pour tester la fonctionnalité GeoIP, vous pouvez utiliser le service suivant : https://www.locabrowser.com


ATTENTION: Si vous êtes sûr que les recommandations ci-dessus sont bien faites, vérifiez que la fonctionnalité woo geo fonctionne sur votre site :

  • ouvrir header.php du thème wp actuel
  • déposez le script suivant au même bas du fichier:
    $pd = WC_Geolocation::geolocate_ip(); print_r($pd);
  • enregistrer le fichier
  • mettre à jour le devant du site et trouver le tableau imprimé (CTRL+U puis CTRL+F recherche 'tableau')
  • si ce tableau est vide - la fonctionnalité woo geo ne fonctionne pas sur votre site/serveur
  • Vous pouvez trouver quelques recommandations ici https://wordpress.org/support/topic/geolocation-not-working-1?replies=10

Un autre exemple de problème:

L'affaire vient d'être résolue aujourd'hui. Je voudrais partager avec vous comment cela a été résolu après avoir contacté mon fournisseur et WC, juste au cas où un client ayant le même fournisseur se présenterait avec le même problème.

Mon fournisseur est donc Bluehost. Il semble que ce n'est que récemment qu'ils ont commencé à remplir HTTP_X_FOWARDED_FOR avec l'adresse IP statique de mon serveur. Peut-être que cela s'est produit après une mise à jour, je ne sais pas. Ils n'étaient pas vraiment utiles pour fournir des informations sur tout cela. WooCommerce était celui qui a pu détecter le problème après un certain temps et a suggéré une solution/une solution de contournement.
WooCommerce vérifiera généralement les variables suivantes pour la véritable IP (en commençant par le haut) :

HTTP_X_REAL_IP
HTTP_X_FORWARDED_FOR
REMOTE_ADDR
WooCommerce recherche donc le pays pour cette adresse IP au lieu de l'adresse IP stockée dans REMOTE_ADDR.

WooCommerce s'attend à ce que HTTP_X_FORWARDED_FOR soit au format suivant :

Les serveurs proxy peuvent envoyer via cet en-tête comme ceci : X-Forwarded-For : client1, proxy1, proxy2
Assurez-vous que nous n'envoyons toujours que la première adresse IP de la liste, qui doit toujours être l'adresse IP du client.

WooCommerce a suggéré une solution de contournement qui impliquerait l'ajout d'un extrait à functions.php pour le remplacer :

if ( isset( $_SERVER['REMOTE_ADDR'] ) && ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { $_SERVER['HTTP_X_FORWARDED_FOR'] = $_SERVER['REMOTE_ADDR']; }

Après avoir ajouté l'extrait de code à functions.php, tout a bien fonctionné et a enfin pu réactiver le sélecteur de devise 🙂

Notes: aussi, j'ai découvert que hostgator avait également un problème similaire https://wordpress.org/support/topic/same-ip-address-for-all-orders/page/2/#post-11362720

Cordialement,
Ezz