Navigation überspringen

Dieses Thema ist gelöst. Hier finden Sie eine Beschreibung des Problems und der Lösung.

Problem:
Sie betreiben ein Online-Buchungssystem, bei dem ein Code im Body die Sprache eines Widgets steuert. Trotz der Einrichtung von Regeln in Elementor, die bestimmen, welcher Code auf welcher Seite angewendet wird, wird immer nur der deutsche Code angewendet, selbst wenn Sie versuchen, den deutschen Code nur auf deutschen Seiten einzubetten und englische Seiten auszuschließen.
Solution:
Wir empfehlen Ihnen, den folgenden Code in die Funktionen Ihrer Website einzufügen, um die Sprache dynamisch basierend auf der aktuellen Sprache der Seite zu steuern. Fügen Sie diesen Code in Ihre

functions.php

Datei oder ein ähnliches Plugin für benutzerdefinierte Codes:

add_action('wp_footer', function() {<br />    $current_language = apply_filters('wpml_current_language', NULL);<br /><br />    // Definieren Sie die sprachspezifischen Einstellungen<br />    $widget_locale = 'EN-US'; // Standard-Locale<br />    if ($current_language === 'de') {<br />        $widget_locale = 'DE-DE';<br />    }<br /><br />    // Ausgabe des Widget-Skripts mit dynamischer Locale<br />    echo "<br />    <script type='module' src='https://cdn.rtr-io.com/widgets.js'></script><br />    <script><br />        window.RTR_ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN_HERE';<br />        window.RTR_LOCALE = '{$widget_locale}';<br />    </script><br />    <rtr-checkout></rtr-checkout><br />    ";<br />});

Dieser Ansatz nutzt den wpml_current_language Hook, um die Sprache dynamisch zu wechseln.

Falls diese Lösung veraltet ist oder nicht auf Ihr Problem zutrifft, empfehlen wir Ihnen, ein neues Support-Ticket zu öffnen. Überprüfen Sie auch die bekannten Probleme, bestätigen Sie die Version der dauerhaften Lösung und stellen Sie sicher, dass Sie die neuesten Versionen von Themes und Plugins installiert haben. Für weitere Unterstützung besuchen Sie bitte unser Support-Forum.

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.

Schlagwörter: 

Dieses Thema enthält 0 Antwort, hat 0 Stimmen.

Zuletzt aktualisiert von marcoT-50 Vor 3 Monaten, 3 Wochen.

Assistiert von: Bruno Kos.

Verfasser Beiträge
Februar 4, 2025 unter 12:48 pm

marcoT-50

Hintergrund des Themas:
I run an online booking system where a code in the body controls the language of a widget. The actual widget code remains the same. In Elementor, I have created two different code sections: one for DE (German) and one for EN (English). I then defined rules to determine which code is applied on which page. For example: Include/Singular/Pages/Dachbox (where ‘Dachbox’ is the name of the German page). And for English, the corresponding rule is Include/Singular/Pages/RoofBox (where ‘RoofBox’ is the equivalent of the German ‘Dachbox’).

Die Symptome:
Unfortunately, only the German code is being applied every time. I also tried embedding the German code only on the German pages and excluding the English pages via the Exclude rule. However, the German code is still being applied everywhere.

Fragen:
Why is the German code being applied on all pages despite the rules set in Elementor?
How can I ensure that the correct language code is applied to the corresponding language page?

Februar 4, 2025 unter 1:03 pm
Februar 4, 2025 unter 1:04 pm #16666760

Bruno Kos
WPML-Unterstützer seit 12/2018

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

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

Can you try something like this?

add_action('wp_footer', function() {
    $current_language = apply_filters('wpml_current_language', NULL);

    // Define the language-specific settings
    $widget_locale = 'EN-US'; // Default locale
    if ($current_language === 'de') {
        $widget_locale = 'DE-DE';
    }

    // Output the widget script with dynamic locale
    echo "
    <script type='module' src='<em><u>versteckter Link</u></em>;
    <script>
        window.RTR_ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN_HERE';
        window.RTR_LOCALE = '{$widget_locale}';
    </script>
    <rtr-checkout></rtr-checkout>
    ";
});

It is based on https://wpml.org/wpml-hook/wpml_current_language/

Februar 4, 2025 unter 6:19 pm #16668236

marcoT-50

Magic, it works 🙂
thx