Basiswährung im WordPress-Währungsumschalter: so werden Preise umgerechnet
Die Basiswährung des WordPress-Währungsumschalters ist die Währung, in der Sie Ihre Preise schreiben. WPCS rechnet jeden Preis von ihr aus um: ein Betrag in der Basiswährung, multipliziert mit dem Wechselkurs der Währung, die der Besucher gewählt hat. Die meisten Fragen zu falschen Beträgen haben drei Ursachen: Kurse, die verkehrt herum eingetragen wurden, Preise, die in einer anderen Währung geschrieben wurden, und die Verwechslung der Basiswährung mit der Währung, die Besucher zuerst sehen. Hier erfahren Sie, wie die Basiswährung funktioniert, wie Sie trotzdem Preise in einer anderen Währung angeben und was passiert, wenn Sie sie ändern.
Was die Basiswährung im Währungsumschalter ist
Öffnen Sie Einstellungen (Settings) → Currency Switcher, Tab Währungen (Currencies). Jede Währungszeile beginnt mit einem Radiobutton; der ausgewählte markiert die Basiswährung. Sein Tooltip erklärt die Bedeutung: Das sollte die Währung sein, in der Ihre Preise geschrieben sind. Es gibt immer genau eine.
Die Basiswährung hat den Kurs 1. Der Kurs jeder anderen Währung gibt an, wie viele Einheiten dieser Währung einer Einheit der Basiswährung entsprechen. Ist INR die Basiswährung, beträgt der USD-Kurs etwa 0,012 (eine Rupie sind 0,012 Dollar), nicht 83. Ein verkehrt herum eingetragener Kurs macht die umgerechneten Preise tausendfach zu hoch.
Beim Aufbau einer Seite berechnet das Plugin für die Währung des Besuchers Betrag × Kurs, wobei der Wert des Feldes Aufschlag (interest) neben dem Kurs zum Kurs addiert wird. Beträge in der Basiswährung selbst werden ohne jede Berechnung so angezeigt, wie sie geschrieben wurden. Mit INR als Basiswährung und [wpcs_price value=8300] auf einer Seite:
| Währung des Besuchers | Kurs | Angezeigt |
|---|---|---|
| INR (Basiswährung) | 1 | 8,300.00 |
| USD | 0.012 | 99.60 |
| EUR | 0.011 | 91.30 |
Symbole, Dezimalstellen und Trennzeichen stammen aus der Zeile der jeweiligen Währung; die Rechnung ist immer dieselbe.
Jeden Preis einmal in der Basiswährung angeben
[wpcs_price value=200] hat kein Attribut für eine Währung: Der Wert wird immer als Betrag in der Basiswährung gelesen. Dasselbe gilt für Beträge, die mit meta_value aus benutzerdefinierten Feldern gelesen werden, und für Beträge, die in PHP mit $WPCS->wpcs_exchange_value() umgerechnet werden. Sie legen jeden Preis einmal fest; wenn die Kurse aktualisiert werden, ziehen alle umgerechneten Preise nach, und nichts muss neu eingegeben werden.
Wählen Sie als Basiswährung also die Währung, in der Sie denken und Rechnungen stellen. Wenn Ihre Preisliste in Rupien geführt wird, ist INR die Basiswährung und jeder Wert steht in Rupien, auch wenn die meisten Besucher Dollar sehen.
Preise, die in einer anderen Währung geschrieben sind
Man kann [wpcs_price] nicht mitteilen, dass ein bestimmter Betrag in Euro angegeben ist, während die Basiswährung US-Dollar ist. [wpcs_price value=250 EUR] wird als 250 in der Basiswährung gelesen, das EUR wird ignoriert. Es gibt drei Wege, mit solchen Preisen umzugehen:
- Ein eigener Betrag für jede Währung. Soll der Preis genau 250 Euro, 270 Dollar und 215 Pfund betragen, verwenden Sie
[wpcs_price type=fixed value=EUR:250,USD:270,GBP:215]. Es wird nichts umgerechnet, aber für jede Währung der Website muss ein Betrag vorhanden sein; siehe Festpreise pro Währung. - Den Betrag selbst in die Basiswährung umrechnen und diese Zahl schreiben. Das ist einfach, aber der Betrag in der Basiswährung folgt späteren Kursänderungen der ursprünglichen Währung nicht.
- Einen kleinen Shortcode die Umrechnung übernehmen lassen, bei jedem Seitenaufruf mit den aktuellen Kursen.
Der folgende Shortcode nimmt einen Betrag in einer beliebigen Währung Ihrer Liste, rechnet ihn mit $WPCS->back_convert() in die Basiswährung um (Betrag geteilt durch den Kurs) und übergibt das Ergebnis an [wpcs_price]:
/*
* [price_from currency=EUR value=250]
* The value is in the given currency; WPCS shows it in the visitor's currency.
* Child theme functions.php or a code snippets plugin.
*/
add_shortcode('price_from', function ($atts) {
global $WPCS;
$atts = shortcode_atts(array('currency' => '', 'value' => 0), $atts);
if (empty($WPCS)) {
return '';
}
$amount = (float) $atts['value'];
$code = strtoupper($atts['currency']);
$currencies = $WPCS->get_currencies();
if (isset($currencies[$code]) && $code !== $WPCS->default_currency) {
// the same amount in the base currency, at today's rate
$amount = $WPCS->back_convert($amount, $currencies[$code]['rate'], 6);
}
return do_shortcode('[wpcs_price value=' . $amount . ']');
});
Besucher, die EUR gewählt haben, sehen genau 250 Euro; alle anderen, auch Besucher in der Basiswährung, sehen 250 Euro zu den aktuellen Kursen umgerechnet. Die Ausgabe ist ein normaler [wpcs_price]-Preis und wird deshalb auch auf Websites mit aktivierter Option Ich verwende ein Cache-Plugin auf meiner Website (I am using cache plugin on my site) korrekt neu gezeichnet.
Die Basiswährung ändern
Klicken Sie im Tab Währungen (Currencies) auf den Radiobutton einer anderen Währung. Das Plugin speichert die neue Basiswährung sofort, fragt beim Aggregator, der im Tab Optionen (Options) ausgewählt ist, die Kurse aller anderen Währungen gegenüber der neuen Basiswährung ab und trägt sie in die Kursfelder ein. Prüfen Sie sie und klicken Sie sofort auf Optionen speichern (Save options): Bis zum Speichern verwendet die Website die neue Basiswährung mit den alten Kursen.
Zeigt ein Kursfeld statt einer Zahl einen Fehler an, konnte der Aggregator den Kurs nicht liefern; die kostenlosen Tarife mancher Kursdienste akzeptieren nur eine einzige Basiswährung. Fehler bei Wechselkursen erklärt die Meldungen, und Kurse lassen sich jederzeit manuell festlegen.
Ihre Preise ändern sich dabei nicht. Jedes value=200, das geschrieben wurde, als USD die Basiswährung war, bedeutet jetzt 200 in der neuen Basiswährung. Entscheiden Sie sich für die Basiswährung, bevor Sie Preise schreiben; ändern Sie sie später, müssen Sie jeden umgerechneten Preis bearbeiten (in den Listen Beiträge (Posts) und Seiten (Pages) findet die Suche nach wpcs_price die Stellen im Inhalt). Feste Preise mit type=fixed, GeoIP-Regeln und die Willkommenswährung sind nicht betroffen.
Basiswährung, Willkommenswährung und aktuelle Währung
Diese drei sind voneinander unabhängig, und nur die erste betrifft die Eingabe von Preisen:
| Währung | Was sie bestimmt | Wo sie festgelegt wird | In PHP |
|---|---|---|---|
| Basiswährung | Die Währung jedes Betrags, den Sie schreiben | Radiobutton im Tab Währungen (Currencies) | $WPCS->default_currency |
| Willkommenswährung | Was ein Erstbesucher sieht, wenn keine GeoIP-Regel greift | Willkommenswährung (Welcome currency) im Tab Optionen (Options) | $WPCS->get_welcome_currency() |
| Aktuelle Währung | Was dieser Besucher gerade sieht | Die Wahl des Besuchers im Umschalter, GeoIP-Regeln oder die Willkommenswährung | $WPCS->current_currency |
Ihre Preise können in INR sein, während neue Besucher in USD beginnen: Legen Sie INR als Basiswährung und USD als Willkommenswährung fest. Wie Sie die erste Währung nach Land bestimmen, steht in Währung nach Land des Besuchers festlegen. In Ihrem eigenen Code lesen Sie die Basiswährung mit $WPCS->default_currency; die Kurse kommen aus $WPCS->get_currencies() und enthalten im Frontend bereits den Aufschlag.
Checkliste
- Der Radiobutton steht auf der Währung, in der Ihre Preise geschrieben sind, und ihr Kurs ist 1.
- Jeder andere Kurs bedeutet „Einheiten dieser Währung pro Einheit der Basiswährung“, nicht umgekehrt.
- Jeder
valueund jedes Preisfeld enthält eine einfache Zahl in der Basiswährung. - Preise, die in einer anderen Währung exakt sein müssen, verwenden
type=fixedoder den Shortcode[price_from]. - Nach einer Änderung der Basiswährung: Kurse geprüft, Optionen speichern (Save options) gedrückt, umgerechnete Preise neu eingegeben.
Wenn die Beträge trotzdem nicht stimmen, eröffnen Sie ein Thema im WPCS-Support-Forum und nennen Sie Ihre Basiswährung, die Kurse aus dem Tab Währungen (Currencies) und den verwendeten Shortcode.