WPCS - WordPress Currency Switcher Professional

WordPress-Währungsumschalter rechnet Preise nicht um: Ursachen und Lösungen

Der Umschalter steht auf der Seite, ein Besucher wählt Euro, und die Preise bleiben in Dollar. Oder sie werden zu 0.00, verschwinden, oder der Shortcode selbst erscheint als Text. Wenn ein WordPress-Währungsumschalter Preise nicht umrechnet, liegt die Ursache fast immer in einer kurzen Liste, und eine Testseite mit zwei Zeilen zeigt Ihnen, welchen Teil dieser Liste Sie prüfen müssen. Diese Anleitung behandelt WPCS – WordPress Currency Switcher, das Plugin für Preise in Beiträgen, Seiten und benutzerdefinierten Inhalten.

Beginnen Sie mit einer Testseite aus zwei Zeilen

Erstellen Sie eine Seite als Entwurf, die nur diese beiden Shortcodes enthält:

[wpcs]
[wpcs_price value=100]

Öffnen Sie die Vorschau in einem privaten Browserfenster, in dem Sie nicht angemeldet sind, und wählen Sie im Umschalter nacheinander jede Währung. Das Ergebnis teilt das Problem in zwei Bereiche: die Einrichtung des Plugins oder die Stelle, an der Ihre echten Preise ausgegeben werden.

Was Sie auf der Testseite sehenWo Sie suchen müssen
100 wird in jeder Währung korrekt umgerechnetDas Plugin funktioniert. Ihre echten Preise werden nicht vom Shortcode ausgegeben oder sind falsch geschrieben: die nächsten beiden Abschnitte
0.00 in einer oder mehreren WährungenDer Wechselkurs dieser Währung ist 0 oder leer
Die Seite lädt neu, aber der Betrag bleibt gleichSeitencache oder Währungsspeicher
Die Auswahl einer Währung bewirkt nichtsEin JavaScript-Problem auf der Seite
[wpcs_price value=100] wird als Text ausgegebenWPCS ist auf dieser Website nicht aktiv
Der Test funktioniert, aber die Produktpreise von WooCommerce ändern sich nieDas falsche Plugin für einen Shop

Der Preis wird nicht von [wpcs_price] ausgegeben

Das ist die häufigste Ursache. WPCS sucht in Ihren Seiten nicht nach Beträgen. Es rechnet nur um, was sein Shortcode [wpcs_price] (oder seine PHP-API) ausgibt. Ein Preis, der als einfacher Text eingetippt wurde, etwa „Unsere Preise beginnen bei 20 $“, ein Preisfeld des Themes, ein Widget für Preistabellen oder die Zelle eines Tabellen-Plugins bleibt genau so stehen, wie er geschrieben wurde, egal welche Währung ausgewählt ist. Ersetzen Sie jeden dieser Beträge durch den Shortcode, geschrieben in Ihrer Basiswährung:

Our rates start at [wpcs_price value=20] per hour.

Gibt das Theme den Preis in einem Template aus seinem eigenen Feld aus, ändern Sie das Template in einem Child-Theme zu echo do_shortcode('[wpcs_price meta_value="price"]');, wobei price der Name des benutzerdefinierten Feldes ist. Die Referenz zu [wpcs_price] listet alle Attribute auf.

Das Feld führt keine Shortcodes aus

Funktioniert der Shortcode auf der Testseite, erscheint aber in Ihrem Layout als Text, gibt das Feld, in dem er steht, seinen Inhalt als einfachen Text aus. Typische Beispiele sind Überschriften- und Button-Widgets, Widgets für Preistabellen, Zellen von Tabellen-Plugins, Optionsfelder des Themes und dynamische Tags, die ein benutzerdefiniertes Feld ausgeben. Verschieben Sie den Preis in ein Text- oder Shortcode-Element oder geben Sie ihn aus einem Template aus. Muss ein Element eines Drittanbieters den Preis enthalten, muss dessen Autor dieses Feld durch do_shortcode() von WordPress leiten; bitten Sie ihn darum.

Ein Shortcode in einem anderen Shortcode

[wpcs_price value="[acf field=price]"] funktioniert nie: WordPress führt keine Shortcodes in Shortcode-Attributen aus, daher erhält value den Text wörtlich. Lassen Sie WPCS das Feld selbst lesen, mit [wpcs_price meta_value=price]; einfache ACF-Felder werden unter ihrem Feldnamen gespeichert. Für Zeilen eines ACF-Repeaters geben Sie den Preis im Template aus:

<?php
// Child theme template: ACF repeater "plans" with the sub field "price".
if (have_rows('plans')) {
    while (have_rows('plans')) {
        the_row();
        echo do_shortcode('[wpcs_price value="' . floatval(get_sub_field('price')) . '"]');
    }
}

Der Preis wurde zu einem Link

WPCS gibt den Preis als einfaches <span class="wpcs_price"> ohne Link aus. Ist der Preis unterstrichen oder anklickbar, hat der Seiteneditor den Shortcode beim Einfügen in einen Link gepackt; Thrive Architect macht das zum Beispiel. Löschen Sie das Element, fügen Sie den Shortcode erneut als einfachen Text ein und prüfen Sie dann das HTML des Elements.

Der Shortcode ist falsch geschrieben

Ein Shortcode mit einem kleinen Tippfehler gibt entweder nichts aus, gibt 0.00 aus oder wird als Text angezeigt. Prüfen Sie diese Punkte:

  • Leerzeichen. Ein Leerzeichen nach dem Shortcode-Namen und zwischen den Attributen: [wpcs_price type="fixed" value="USD:20,ZAR:350"]. Ohne das erste Leerzeichen ist [wpcs_pricetype="fixed" ...] ein anderer, unbekannter Shortcode.
  • Gerade Anführungszeichen. Aus einer Textverarbeitung, einem Dokument oder einem Chat kopierter Text enthält oft typografische Anführungszeichen (” “). WordPress behandelt sie als Teil des Werts, sodass type nicht mehr fixed ist und value keine Zahl mehr, was 0.00 ergibt. Tippen Sie die Anführungszeichen in der Code- oder Textansicht des Editors neu ein oder lassen Sie sie bei einzelnen Werten weg: value=100.
  • Eine einfache Zahl. value ist ein Betrag in der Basiswährung mit einem Punkt als Dezimaltrennzeichen: 1500 oder 1500.50. PHP liest die Zahl bis zum ersten Zeichen, das es nicht versteht, daher wird 1,500 als 1 gelesen, 1.500,00 als 1,5 und $1500 als 0.
  • Leerer Wert. value=0, ein leerer value oder ein leeres benutzerdefiniertes Feld gibt gar nichts aus. Prüfen Sie bei meta_value den exakten Meta-Schlüssel und fügen Sie post_id=123 hinzu, wenn das Feld zu einem anderen Beitrag gehört.
  • Feste Preise. Führen Sie bei type="fixed" jede Währung der Website als Paare CODE:Betrag auf, durch Kommas getrennt. Eine Währung, die in der Liste fehlt, zeigt none.

Der Wechselkurs ist 0 oder leer

Ein umgerechneter Preis ist der Betrag in der Basiswährung multipliziert mit dem Kurs der ausgewählten Währung; bei einem Kurs von 0 wird daher jeder Preis als 0.00 angezeigt. Eine neue Währungszeile beginnt mit dem Kurs 0, bis Sie einen Kurs abrufen oder eintippen. Schlägt der Abruf fehl, zum Beispiel weil der Code kein gültiger ISO-4217-Code ist oder der Aggregator einen API-Schlüssel braucht, den Sie nicht eingegeben haben, erhält das Kursfeld statt einer Zahl einen Fehlertext wie There is no data for these currencies, und das Speichern der Seite speichert diesen Kurs als 0.

  1. Öffnen Sie Einstellungen (Settings) → Currency Switcher, Tab Währungen (Currencies), und sehen Sie sich den Kurs jeder Währung an. Die Basiswährung (der ausgewählte Radiobutton) hat den Kurs 1.
  2. Klicken Sie auf Alle Kurse aktualisieren (Update all rates) oder auf die Aktualisieren-Schaltfläche neben einem einzelnen Kurs oder tippen Sie den Kurs von Hand ein. Zeigt das Feld statt einer Zahl eine Meldung, prüfen Sie den Code sowie Währungs-Aggregator (Currency aggregator) und API-Schlüssel des Aggregators (Aggregator API key) im Tab Optionen (Options); jede Meldung wird in Währungsumschalter-Fehler „no data for“ bei Währungen erklärt, Probleme mit dem Code in Warum die automatische Kursaktualisierung nicht funktioniert.
  3. Klicken Sie auf Optionen speichern (Save options) und leeren Sie den Seitencache.

Zeigen Preise kurz 0.00 und dann den richtigen Betrag, stammt die Seite aus einem Cache, der erstellt wurde, als ein Kurs noch 0 war, und Ich verwende ein Cache-Plugin auf meiner Website (I am using cache plugin on my site) zeichnet die Preise nach dem Laden neu. Korrigieren Sie die Kurse und leeren Sie dann alle Caches.

Die Seite folgt dem Umschalter nicht: Cache, Speicher, JavaScript

Wählt ein Besucher eine Währung, lädt die Seite mit ?currency=EUR in der Adresse neu, das Plugin speichert die Auswahl im Speicher, der unter Währungsspeicher (Currency storage) festgelegt ist, und jede folgende Seite wird mit Preisen in dieser Währung aufgebaut. Drei Dinge unterbrechen diese Kette.

  • Seitencache. Eine zwischengespeicherte Seite enthält die Preise in der Währung, mit der sie gecacht wurde, sodass die nächste Seite die alte Währung zeigt. Stellen Sie im Tab Optionen (Options) Ich verwende ein Cache-Plugin auf meiner Website (I am using cache plugin on my site) auf Ja (Yes) und leeren Sie alle Caches: Plugin, Server und CDN. Der Browser sendet dann nach dem Laden der Seite eine einzige Anfrage an admin-ajax.php (Aktion wpcs_get_prices_html) und zeichnet jedes [wpcs_price] in der Währung des Besuchers neu. Ein typisches Anzeichen für diese Ursache: Alles funktioniert, solange Sie angemeldet sind, weil Caches Administratoren überspringen.
  • Währungsspeicher. Springt die Währung direkt nach dem Umschalten auf die Willkommens- oder GeoIP-Währung zurück, behält der gewählte Speicher den Wert auf Ihrem Server nicht. Meist sind Sessions der Übeltäter: Stellen Sie Währungsspeicher (Currency storage) auf transient, den Standard.
  • JavaScript. Das Dropdown wird von JavaScript gesteuert. Bewirkt die Auswahl einer Währung nichts, öffnen Sie die Browser-Konsole (F12) und laden Sie neu: Ein Fehler eines anderen Skripts oder ein Optimierungs-Plugin, das Skripte verzögert, aufschiebt oder zusammenfasst, stoppt den Umschalter. Beheben Sie den Fehler oder nehmen Sie /wp-content/plugins/currency-switcher/js/ und jQuery von diesen Funktionen aus und leeren Sie dann die Caches.

Plugin-spezifische Ausnahmen und Server-Caches, die Sie nicht abschalten können, behandelt Währungsumschalter funktioniert nicht mit einem Cache-Plugin.

Die Produktpreise von WooCommerce ändern sich nicht: das falsche Plugin

WPCS ändert nie die Produktpreise, den Warenkorb oder die Kasse von WooCommerce. Das ist so gewollt und kein Fehler: Es rechnet nur Preise in Inhalten um. Ein Shop braucht das Schwester-Plugin FOX – WooCommerce Currency Switcher. Wenn Sie den FOX-Download haben, vergewissern Sie sich, dass Sie das Archiv des Haupt-Plugins installiert haben und nicht das Bonus-Archiv von WPCS, das in einem separaten Ordner mitgeliefert wird. Die Unterschiede werden in WordPress Currency Switcher vs. WooCommerce Currency Switcher erklärt.

Checkliste

  • Die Testseite mit [wpcs] und [wpcs_price value=100] rechnet in einem privaten Fenster um.
  • Jeder Preis, der umgeschaltet werden soll, wird von [wpcs_price] ausgegeben, in einem Feld, das Shortcodes ausführt, und nicht in einem anderen Shortcode verschachtelt.
  • Leerzeichen zwischen den Attributen, gerade Anführungszeichen, einfache Zahlen in der Basiswährung.
  • Keine Währung hat den Kurs 0 oder einen leeren Kurs.
  • Bei einem Seitencache: Ich verwende ein Cache-Plugin auf meiner Website (I am using cache plugin on my site) steht auf Ja (Yes), und alle Caches sind geleert.
  • Keine JavaScript-Fehler in der Konsole.

Wenn alle Punkte stimmen und ein Preis trotzdem nicht umgerechnet wird, eröffnen Sie ein Thema im WPCS-Support-Forum mit einem Link zur Seite und dem Shortcode genau so, wie Sie ihn getippt haben.