Accueil

Référence développeur · WordPress

Websource Locale pour WordPress — référence développeur

Bloc, shortcode, fonction, filtres, emplacements, gabarits et section de paquet de thème.

Version 1.0.0 · WordPress 6.4+, WooCommerce 8+ (facultatif) · Mis à jour le 09/10/2026

Guide utilisateur

Cette extension existe aussi pour : PrestaShop

Bloc et shortcode

ÉlémentAttributsValeurs
Bloc websource/locale-selectorwhatauto (défaut), combined, language, currency
Shortcode [websource_locale]what, visibilityvisibility : all (défaut), desktop, mobile
[websource_locale what="language" visibility="desktop"]

Le bloc est rendu côté serveur (blocks/locale-selector/block.json, éditeur assets/js/block.js sans étape de build). La feuille wsx-locale et le script wsx-locale (différé, sans jQuery) ne sont chargés que sur les pages où le sélecteur ou la bannière est rendu. Aucune route REST.

Fonction publique

echo websource_locale_selector('auto', 'all'); // HTML du sélecteur, '' s'il n'y a rien à afficher

Emplacements automatiques

PositionHookThème
topbar_rightwebsource_theme_area_topbar_rightWebsource Theme
mobile_menuwebsource_theme_drawerWebsource Theme
footer_localewebsource_theme_area_footer_afterWebsource Theme
body_openwp_body_opentout thème
footerwp_footer (priorité 5)tout thème
customaction de votre choix ([A-Za-z][A-Za-z0-9_]{2,80})—

Dans votre thème : do_action('my_theme_hook'); puis saisissez my_theme_hook dans « Hook personnalisé ».

Filtres

FiltreParamètresRôle
websource_locale_languagesarray[] $itemsLangues proposées. Clés : id, iso_code, locale, name, url, current, fallback, rtl, default.
websource_locale_currenciesarray[] $itemsDevises proposées. Clés : id, iso_code, sign, name, url, current, default.
websource_locale_templatestring $path, string $nameChemin du gabarit selector ou suggestion.
websource_theme_export, websource_theme_import—Section locale des paquets de thème.

Brancher une extension multidevise non reconnue :

add_filter('websource_locale_currencies', function (array $items) {
    foreach (['EUR' => '€', 'CHF' => 'CHF'] as $code => $sign) {
        $items[] = ['id' => $code, 'iso_code' => $code, 'sign' => $sign, 'name' => '', 'url' => add_query_arg('my_currency', $code), 'current' => my_current_currency() === $code, 'default' => $code === 'EUR'];
    }
    return $items;
});

Extensions reconnues

RôleExtensionLectureChangement
LanguesPolylangpll_the_languages(['raw' => 1])lien de traduction, sinon accueil de la langue
LanguesWPMLfiltre wpml_active_languageslien fourni par WPML
DevisesFOX / WOOCS$WOOCS->get_currencies()?currency=XXX
DevisesWooCommerce Multilingual$woocommerce_wpml->multi_currency?wcmlc=XXX
DevisesCURCYWOOMULTI_CURRENCY_Data::get_ins()?wmc-currency=XXX
DevisesWooPaymentsWC_Payments_Multi_Currency()?currency=XXX
DevisesAelia Currency Switcherfiltre wc_aelia_cs_enabled_currencies?aelia_cs_currency=XXX

Gabarits

templates/selector.php et templates/suggestion.php se surchargent en les copiant dans <thème>/websource-locale/.

Variables CSS

VariableRepliRôle
--wslc-bgvar(--color-surface, #fff)Fond du panneau
--wslc-inkvar(--color-ink, #14282b)Texte
--wslc-linevar(--color-line, #d9e6e4)Bordures
--wslc-accentvar(--color-brand-600, #0f766e)Choix actif, focus
--wslc-tintvar(--color-brand-50, #effaf8)Survol
--wslc-radiusvar(--radius-lg, .75rem)Arrondi
--wslc-font.875remTaille du texte

Classes : .wslc, .wslc--combined|language|currency, .wslc--up, .wslc--desktop-only, .wslc--mobile-only, .wslc-bar, .wslc-suggest.

Données

ÉlémentEmplacement
RéglagesOption wsx_locale_settings (tableau normalisé à la lecture et à l'écriture).
Témoinwslc_dismissed=1, SameSite=Lax, durée réglable ; posé par le navigateur quand le visiteur répond à la bannière.

Textes par langue : texts[<clé>][<code de langue>], déclarés dans wpml-config.xml et enregistrés auprès de Polylang (pll_register_string).

La géolocalisation appelle WC_Geolocation::geolocate_ip('', false, false) : base MaxMind locale uniquement, sans service de repli ; l'adresse IP n'est ni stockée ni journalisée.

Section de paquet de thème

{"locale": {"version": 1, "data": {"arrangement": "combined", "style_desktop": "dropdown", "placements": [{"position": "footer_locale", "what": "auto", "visibility": "all"}]}}}

Les positions d'un paquet PrestaShop sont converties (nav1, nav2, top → topbar_right ; footer* → footer_locale). Hors du thème Websource, elles deviennent body_open ou footer.