WPML
Status
Gelöst
Gemeldet für
WPML String Translation 2.4.2
Gelöst in
WPML String Translation 2.4.2.1

Übersicht über das Problem

Bei der Verwendung von WPML Multilingual & Multicurrency for WooCommerce 3.8.6 mit WPML 3.5.3 werden auf der Bestellbestätigungsseite nach dem Aufgeben einer Bestellung in einer Sekundärsprache einige Fehler angezeigt (oder protokolliert).

Die Fehlermeldung sieht ähnlich aus wie die folgende:

PHP Notice: Undefined index: order-received in ../wp-content/plugins/woocommerce-multilingual/inc/class-wcml-endpoints.php on line 155

Zusätzlich zur Fehlermeldung wird den Benutzern anstelle der Seite ‚Bestellung eingegangen‘ mit den Bestelldetails die übersetzte Seite ‚Kasse‘ ohne Inhalt angezeigt.

Leere Seite „Kasse“
Leere Seite „Kasse“ auf Deutsch

Obwohl die Bestellungen dennoch ausgeführt und Benachrichtigungs-E-Mails versendet werden, könnten die Kunden verwirrt sein, annehmen, dass die Bestellung nicht erfolgreich war, und doppelte Bestellungen aufgeben.

Wir haben herausgefunden, dass dies auf eine Änderung in WPML String-Übersetzung 2.4.2 zurückzuführen ist. Ein Fix ist bereits in Arbeit, aber wir müssen ihn gründlich testen, bevor wir ein Update veröffentlichen.

Problemumgehung

Eine Möglichkeit, dies zu beheben, besteht darin, die Beta-Version 2.4.2.1-b1 für die WPML String-Übersetzung zu verwenden. Sie behebt nur dieses spezielle Problem und sollte keine Auswirkungen auf andere Dinge haben. Es handelt sich jedoch um eine Beta-Version, daher ist Vorsicht geboten: Sichern Sie Ihre Website und testen Sie sie am besten zuerst in einer Nicht-Live-Umgebung.

Es gibt eine weitere mögliche Problemumgehung, die Sie vorübergehend verwenden können und die die Benutzererfahrung nicht zu sehr beeinträchtigen sollte. Diese Problemumgehung beinhaltet, den String, der dem Endpunkt ‚order-received‘ entspricht, als nicht übersetzt zu markieren. Sie müssen den String nicht löschen, sondern nur das Kontrollkästchen „Übersetzung ist abgeschlossen“ deaktivieren. Hier sind die Schritte für einen Fall, in dem Sie Englisch als Standardsprache haben. Die Schritte sind identisch, wenn Ihre Website eine andere Standardsprache verwendet.


  1. Gehen Sie zu WPML -> String-Übersetzung

  2. Suchen Sie nach ‚order-received‘ oder navigieren Sie zur Domain ‚WooCommerce Endpoints‘ und finden Sie den String ‚order-received‘.

  3. Erweitern Sie den Abschnitt „Übersetzungen“ für den String ‚order-received‘

  4. Deaktivieren Sie das Kontrollkästchen „Übersetzung ist abgeschlossen“ und klicken Sie für alle Sprachen auf „Speichern“
Den Endpunkt ‚order-received‘ als nicht übersetzt markieren
Den Endpunkt ‚order-received‘ als nicht übersetzt markieren

Danach wird Ihre Seite „Order Received“ weiterhin übersetzt. Es ist nur so, dass der Endpunkt-String in der URL nicht übersetzt wird.

Alle bekannten Probleme →