WPCS - WordPress Currency Switcher Professional

Wie zeigt man den aktuellen Währungscode in WordPress an?

So zeigen Sie den aktuellen Währungscode in WordPress mit einem eigenen Shortcode an, der nur den Code (z. B. „USD“, „EUR“, „GBP“) ohne zusätzlichen Text ausgibt.

Das Problem

WPCS hat einen integrierten Shortcode [wpcs_current_currency], der die aktuelle Währung anzeigt, aber Folgendes ausgibt:

Current currency is: USD

Was Sie oft benötigen: Nur den Währungscode: USD

Das ist nützlich, wenn Sie:

  • Währungsdaten an externe Anwendungen senden
  • die Währung in Ihrem eigenen Text anzeigen
  • die Währung in Formulare oder andere Plugins einbinden
  • eigene Preisanzeigen erstellen

Lösung: Eigenen Shortcode erstellen

Fügen Sie diesen Code in die functions.php Ihres Child-Themes ein oder verwenden Sie das Plugin Code Snippets:

Basisversion (nur Währungscode)

/**
 * Custom shortcode to display current currency code
 * Usage: [current_currency]
 * Output: USD (or EUR, GBP, etc.)
 */
add_shortcode('current_currency', function() {
    if (class_exists('WPCS')) {
        global $WPCS;
        return $WPCS->current_currency;
    }
    return '';
});

Verwendung:
[current_currency]

Ausgabe:
USD

Erweiterte Version (mit mehreren Optionen)

Diese Version bietet Ihnen mehr Flexibilität mit verschiedenen Ausgabeformaten:

/**
 * Extended currency shortcode with options
 * Usage: [get_currency info="code"]
 * Options:
 * - code: USD
 * - symbol: $
 * - name: US Dollar
 */
add_shortcode('get_currency', function($atts) {
    if (!class_exists('WPCS')) {
        return '';
    }
    
    global $WPCS;
    
    // Default attributes
    $atts = shortcode_atts(array(
        'info' => 'code', // code, symbol, or name
    ), $atts);
    
    $currency = $WPCS->current_currency;
    
    // Get currency data
    $currencies = $WPCS->get_currencies();
    
    switch ($atts['info']) {
        case 'symbol':
            // Return currency symbol ($, €, £)
            return isset($currencies[$currency]['symbol']) ? $currencies[$currency]['symbol'] : '';
            
        case 'name':
            // Return currency name (US Dollar, Euro, etc.)
            return isset($currencies[$currency]['name']) ? $currencies[$currency]['name'] : '';
            
        case 'code':
        default:
            // Return currency code (USD, EUR, GBP)
            return $currency;
    }
});

Anwendungsbeispiele:
Currency code: [get_currency info="code"]
Currency symbol: [get_currency info="symbol"]
Currency name: [get_currency info="name"]

Ausgabe:
Currency code: USD
Currency symbol: $
Currency name: US Dollar

Wo der Code eingefügt wird

Option 1: functions.php des Child-Themes (empfohlen)

  1. Gehen Sie zu Design → Theme-Datei-Editor (Appearance → Theme Editor)
  2. Wählen Sie das Child-Theme aus (wichtig!)
  3. Öffnen Sie functions.php
  4. Fügen Sie den Code am Ende der Datei ein
  5. Klicken Sie auf Datei aktualisieren (Update File)

Warum ein Child-Theme:

  • Updates des Eltern-Themes löschen Ihren Code nicht
  • Sicherer und besser wartbar

Option 2: Plugin Code Snippets (einfacher)

  1. Installieren Sie das Plugin Code Snippets: https://wordpress.org/plugins/code-snippets/
  2. Gehen Sie zu Snippets → Neu hinzufügen (Add New)
  3. Fügen Sie den Code ein
  4. Stellen Sie „Überall ausführen (Run everywhere)“ ein
  5. Aktivieren Sie das Snippet

Vorteile:

  • Keine Bearbeitung von Theme-Dateien
  • Einfach zu aktivieren und zu deaktivieren
  • Übersteht Theme-Wechsel

Praxisbeispiele

Beispiel 1: Eigener Preistext

Statt:

Current currency is: USD
Price: $99

können Sie schreiben:
Price in [current_currency]: $99

Ausgabe:
Price in USD: $99

Beispiel 2: Einbindung in Formulare

Senden Sie den Währungscode über ein verstecktes Feld an eine externe Anwendung:

<form>
    <input type="hidden" name="currency" value="[current_currency]">
    <input type="text" name="amount">
    <button type="submit">Submit</button>
</form>

Beispiel 3: Bedingte Inhalte

In Kombination mit Plugins für bedingte Shortcodes:

[if currency="USD"]
Special offer for US customers!
[/if]

Beispiel 4: Dynamischer Text

Your cart total in US Dollar: $99.00

Ausgabe:
Your cart total in US Dollar: $99.00

Beispiel 5: Vergleich mehrerer Währungen

Price: $99 [current_currency]
(Approximately €90 EUR or £80 GBP)

Fortgeschritten: Per GeoIP erkannte Währung abrufen

Wenn Sie die Währung anzeigen möchten, die per GeoIP automatisch erkannt wurde (und nicht unbedingt die aktuell aktive Währung):

/**
 * Get GeoIP detected currency
 * Usage: [geoip_currency]
 */
add_shortcode('geoip_currency', function() {
    if (!class_exists('WPCS')) {
        return '';
    }
    
    global $WPCS;
    
    // Get currency detected by GeoIP
    $geo_currency = $WPCS->get_currency_by_country(
        $WPCS->get_user_country_code()
    );
    
    return $geo_currency ? $geo_currency : $WPCS->default_currency;
});

Anwendungsfall: Zeigen Sie dem Besucher, welche Währung anhand seines Standorts erkannt wurde:
We detected you're browsing from [geoip_currency] region.
Currently viewing prices in [current_currency].

Fortgeschritten: Alle Währungsinformationen abrufen

Rufen Sie alle Daten zur aktuellen Währung ab:

/**
 * Get comprehensive currency data
 * Usage: [currency_info]
 */
add_shortcode('currency_info', function() {
    if (!class_exists('WPCS')) {
        return '';
    }
    
    global $WPCS;
    
    $currency = $WPCS->current_currency;
    $currencies = $WPCS->get_currencies();
    $data = $currencies[$currency];
    
    $output = sprintf(
        'Code: %s | Symbol: %s | Name: %s | Rate: %s',
        $currency,
        $data['symbol'],
        $data['name'],
        $data['rate']
    );
    
    return $output;
});

Ausgabe:
Code: EUR | Symbol: € | Name: Euro | Rate: 0.92

Die Ausgabe gestalten

Sie können die Ausgabe zur Gestaltung in HTML einbetten:

add_shortcode('styled_currency', function() {
    if (!class_exists('WPCS')) {
        return '';
    }
    
    global $WPCS;
    $currency = $WPCS->current_currency;
    
    return '<span class="currency-badge">' . esc_html($currency) . '</span>';
});

Fügen Sie dann das CSS hinzu:
.currency-badge {
    background: #007bff;
    color: white;
    padding: 2px 8px;
    border-radius: 3px;
    font-size: 12px;
    font-weight: bold;
}

Ausgabe:
<span style="background:#007bff;color:white;padding:2px 8px;border-radius:3px;font-size:12px;font-weight:bold;">USD</span>

Fehlerbehebung

Der Shortcode zeigt nichts an

Problem: [current_currency] zeigt eine leere Ausgabe

Mögliche Ursachen:

  1. WPCS ist nicht aktiv
    • Prüfen Sie, ob das WPCS-Plugin installiert und aktiviert ist
    • Sehen Sie auf der Seite „Plugins“ nach
  2. Code nicht korrekt eingefügt
    • Prüfen Sie, ob sich der Code in der functions.php oder in Code Snippets befindet
    • Suchen Sie nach PHP-Syntaxfehlern
    • Sehen Sie ins Fehlerprotokoll (wenn WP_DEBUG aktiviert ist)
  3. Konflikt bei Shortcode-Namen
    • Ein anderes Plugin verwendet möglicherweise denselben Shortcode-Namen
    • Verwenden Sie stattdessen einen anderen Namen: [my_currency]

Lösung: Fügen Sie Ihrem Shortcode eine Fehlerprüfung hinzu:

add_shortcode('current_currency', function() {
    if (!class_exists('WPCS')) {
        return '<!-- WPCS plugin not found -->';
    }
    
    global $WPCS;
    
    if (!isset($WPCS->current_currency)) {
        return '<!-- Currency not set -->';
    }
    
    return $WPCS->current_currency;
});

Rufen Sie den Seitenquelltext auf, um die Fehlermeldung zu sehen.

Es wird die falsche Währung angezeigt

Problem: Der Shortcode zeigt die falsche Währung an

Mögliche Ursachen:

  1. Cache-Problem
    • Leeren Sie alle Caches (WordPress, Browser, Server)
    • Testen Sie im Inkognito-Modus
  2. Währung wurde noch nicht umgeschaltet
    • Der Besucher hat die Währung noch nicht manuell gewechselt
    • Die GeoIP-Erkennung funktioniert nicht
    • Prüfen Sie die WPCS-Einstellungen

Lösung:

  • Leeren Sie die Caches
  • Testen Sie den Währungswechsel manuell
  • Prüfen Sie, ob GeoIP in WPCS konfiguriert ist

Der Shortcode funktioniert in Beiträgen, aber nicht in Widgets

Problem: Der Shortcode wird in Beiträgen angezeigt, aber nicht in Sidebar-Widgets

Ursache: WordPress verarbeitet Shortcodes in Widgets standardmäßig nicht

Lösung: Fügen Sie diesen Code hinzu, um Shortcodes in Widgets zu aktivieren:

add_filter('widget_text', 'do_shortcode');

Sonderzeichen werden falsch angezeigt

Problem: Währungssymbole wie € oder £ werden als � dargestellt

Lösung: Verwenden Sie esc_html() für die korrekte Kodierung:

add_shortcode('current_currency', function() {
    if (class_exists('WPCS')) {
        global $WPCS;
        return esc_html($WPCS->current_currency);
    }
    return '';
});

Verwendung in PHP-Templates

Wenn Sie dies statt über Shortcodes in PHP-Template-Dateien verwenden möchten:

<?php
if (class_exists('WPCS')) {
    global $WPCS;
    echo esc_html($WPCS->current_currency);
}
?>

Oder mit dem Shortcode:
<?php echo do_shortcode('[current_currency]'); ?>

Bewährte Vorgehensweisen

  1. Prüfen Sie immer, ob WPCS vorhanden ist

    if (class_exists('WPCS')) {
           // Your code
       }

     

    Das verhindert Fehler, wenn WPCS deaktiviert wird

  2. Verwenden Sie eindeutige Shortcode-Namen
    • Vermeiden Sie allgemeine Namen wie [currency]
    • Verwenden Sie Namen mit Präfix: [my_site_currency]
  3. Ausgabe escapen
    return esc_html($WPCS->current_currency);

    Verhindert XSS-Sicherheitslücken
  4. Nach WPCS-Updates testen
    • Plugin-Updates können die API verändern
    • Testen Sie Ihre eigenen Shortcodes nach Updates
  5. Dokumentieren Sie Ihre Shortcodes
    • Halten Sie fest, was jeder Shortcode bewirkt
    • Fügen Sie Kommentare im Code hinzu

Alternative: Integrierte WPCS-Funktion verwenden

Statt einen Shortcode zu erstellen, können Sie die WPCS-Funktion direkt in PHP verwenden:

$currency = wpcs_current_currency();
echo $currency; // Outputs: USD

Verfügbare Funktionen:

  • wpcs_current_currency() - Aktuellen Währungscode abrufen
  • wpcs_convert_price($amount, $from, $to) - Zwischen Währungen umrechnen
  • wpcs_get_user_currency() - Vom Benutzer gewählte Währung abrufen

Zusammenfassung

Schnelle Lösung (zum Kopieren und Einfügen):

/**
 * Display current currency code
 * Usage: [current_currency]
 * Output: USD (or EUR, GBP, etc.)
 */
add_shortcode('current_currency', function() {
    if (class_exists('WPCS')) {
        global $WPCS;
        return esc_html($WPCS->current_currency);
    }
    return '';
});

Einfügen in:

  • die functions.php des Child-Themes, ODER
  • das Plugin Code Snippets

Überall verwendbar:

[current_currency]

Ausgabe:
USD

Das war's schon! Einfach, sauber und überall einsetzbar, wo Shortcodes unterstützt werden.