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: USDWas 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)
- Gehen Sie zu Design → Theme-Datei-Editor (Appearance → Theme Editor)
- Wählen Sie das Child-Theme aus (wichtig!)
- Öffnen Sie
functions.php - Fügen Sie den Code am Ende der Datei ein
- 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)
- Installieren Sie das Plugin Code Snippets: https://wordpress.org/plugins/code-snippets/
- Gehen Sie zu Snippets → Neu hinzufügen (Add New)
- Fügen Sie den Code ein
- Stellen Sie „Überall ausführen (Run everywhere)“ ein
- 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: $99können Sie schreiben:
Price in [current_currency]: $99Ausgabe:
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.00Ausgabe:
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:
- WPCS ist nicht aktiv
- Prüfen Sie, ob das WPCS-Plugin installiert und aktiviert ist
- Sehen Sie auf der Seite „Plugins“ nach
- 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)
- 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:
- Cache-Problem
- Leeren Sie alle Caches (WordPress, Browser, Server)
- Testen Sie im Inkognito-Modus
- 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
- Prüfen Sie immer, ob WPCS vorhanden ist
if (class_exists('WPCS')) { // Your code }
Das verhindert Fehler, wenn WPCS deaktiviert wird
- Verwenden Sie eindeutige Shortcode-Namen
- Vermeiden Sie allgemeine Namen wie
[currency] - Verwenden Sie Namen mit Präfix:
[my_site_currency]
- Vermeiden Sie allgemeine Namen wie
- Ausgabe escapen
return esc_html($WPCS->current_currency);
Verhindert XSS-Sicherheitslücken - Nach WPCS-Updates testen
- Plugin-Updates können die API verändern
- Testen Sie Ihre eigenen Shortcodes nach Updates
- 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: USDVerfügbare Funktionen:
wpcs_current_currency()- Aktuellen Währungscode abrufenwpcs_convert_price($amount, $from, $to)- Zwischen Währungen umrechnenwpcs_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.phpdes Child-Themes, ODER - das Plugin Code Snippets
Überall verwendbar:
[current_currency]Ausgabe:
USDDas war's schon! Einfach, sauber und überall einsetzbar, wo Shortcodes unterstützt werden.