Les boutiques WooCommerce peuvent afficher des avis de paiement différents selon la région du visiteur. PHP insère le conteneur, puis le navigateur remplace le message selon le pays.
Explication de l’API
Un appel côté navigateur vérifie l’IP du visiteur et renvoie son IP, son pays, sa région et sa ville. Ce modèle convient au contenu localisé.
{"ip":"185.220.236.7","country":"TW","region":"Taiwan","city":"Taipei"}
Cas d’utilisation
Ces scénarios montrent la valeur de l’interface d’information IP tout en séparant clairement IP serveur et IP visiteur.
- Ces scénarios montrent la valeur de l’interface d’information IP tout en séparant clairement IP serveur et IP visiteur.
- Afficher des avis de paiement par IP visiteur dans WooCommerce
- Explication de l’API
- Recommandations SEO et UX
Logique d’implémentation
Avant l’implémentation, identifiez le demandeur : une requête serveur renvoie l’IP serveur, une requête navigateur renvoie l’IP visiteur.
- Avant l’implémentation, identifiez le demandeur : une requête serveur renvoie l’IP serveur, une requête navigateur renvoie l’IP visiteur.
- Un appel côté navigateur vérifie l’IP du visiteur et renvoie son IP, son pays, sa région et sa ville. Ce modèle convient au contenu localisé.
- Tous les exemples ci-dessous utilisent directement
https://my.ipin.io/info, avec commentaires et textes d’interface localisés. - Le contenu par défaut doit rester complet et lisible, tandis que le contenu régional sert d’amélioration. Les moteurs indexent un contenu stable et la page reste utilisable si l’API échoue.
Exemple de code
Tous les exemples ci-dessous utilisent directement https://my.ipin.io/info, avec commentaires et textes d’interface localisés.
functions.php / plugin
function ipin_geo_payment_notice_html() {
$box_id = 'ipin-payment-notice-' . wp_generate_uuid4();
ob_start();
?>
<div id="<?php echo esc_attr($box_id); ?>" class="woocommerce-info ipin-payment-notice">Bienvenue. Ceci est le contenu par défaut.</div>
<script>
(async function () {
const el = document.getElementById("<?php echo esc_js($box_id); ?>");
const defaultText = "Bienvenue. Ceci est le contenu par défaut.";
const contentMap = { TW: "Contenu pour les visiteurs de Taïwan", US: "Contenu pour les visiteurs des États-Unis", JP: "Contenu pour les visiteurs du Japon" };
try {
// Appel navigateur vers /info : détecte l’IP du visiteur.
const info = await fetch("https://my.ipin.io/info").then(res => res.json());
el.textContent = contentMap[info.country] || defaultText;
} catch (e) {
// Conserver la valeur par défaut si la requête API échoue.
el.textContent = defaultText;
}
})();
</script>
<?php
return ob_get_clean();
}
add_action('woocommerce_review_order_before_payment', 'ipin_geo_payment_notice');
function ipin_geo_payment_notice() { echo ipin_geo_payment_notice_html(); }
add_shortcode('geo_payment_notice', 'ipin_geo_payment_notice_shortcode');
function ipin_geo_payment_notice_shortcode() { return ipin_geo_payment_notice_html(); }
Shortcode
[geo_payment_notice]
Recommandations SEO et UX
Le contenu par défaut doit rester complet et lisible, tandis que le contenu régional sert d’amélioration. Les moteurs indexent un contenu stable et la page reste utilisable si l’API échoue.
Erreurs fréquentes
Les points suivants influencent la précision de l’article, l’exploitabilité du code et la crédibilité de l’explication de l’API.
- Les points suivants influencent la précision de l’article, l’exploitabilité du code et la crédibilité de l’explication de l’API.
- Le contenu par défaut doit rester complet et lisible, tandis que le contenu régional sert d’amélioration. Les moteurs indexent un contenu stable et la page reste utilisable si l’API échoue.
- Avant l’implémentation, identifiez le demandeur : une requête serveur renvoie l’IP serveur, une requête navigateur renvoie l’IP visiteur.
- Ces scénarios montrent la valeur de l’interface d’information IP tout en séparant clairement IP serveur et IP visiteur.
Résumé
Un appel côté navigateur vérifie l’IP du visiteur et renvoie son IP, son pays, sa région et sa ville. Ce modèle convient au contenu localisé.
FAQ
Cette FAQ est spécifique à cet article et n’est pas répétée dans tous les articles.