Dieses Thema ist gelöst. Hier finden Sie eine Beschreibung des Problems und der Lösung.
Problem:
Der Kunde versucht, einen Fehler zu beheben, bei dem Bewertungen manchmal in der falschen Sprache auf einer Produktseite angezeigt werden. Der Fehler tritt auf, wenn der Filter
apply_filters( 'wpml_translate_single_string', 'xyz', 'wcml-reviews', 'product-1370-review-29096', 'fr' );
verwendet wird, um Review-Texte beim Seitenaufruf zu rendern. Die Texte werden nicht immer in die aktuelle Frontend-Sprache übersetzt, obwohl sie über die REST-API korrekt zurückgegeben werden.
Solution:
Wir haben festgestellt, dass der Hook wie erwartet funktioniert und das Problem wahrscheinlich mit dem benutzerdefinierten Code des Kunden zusammenhängt. Wir empfehlen, sich ein ähnliches Problem anzusehen, das in einem anderen Ticket behandelt wurde: https://wpml.org/forums/topic/retrieving-product-reviews-in-all-languages-via-get_comments-no-longer-works/#post-12973947. Da das Problem über den Supportbereich für WPML und direkt verbundene Plugins hinausgeht, können wir keine weitere Hilfe anbieten. Für weiterführende Dienste empfehlen wir, einen unserer Vertragspartner zu kontaktieren: https://wpml.org/contractors/.
Sollte diese Lösung nicht relevant erscheinen, bitten wir darum, ein neues Support-Ticket zu eröffnen: WPML-Supportforum.
0% of people find this useful.
Dies ist das technische Support-Forum für WPML – das mehrsprachige WordPress-Plugin.
Mitlesen können alle, doch nur WPML-Kunden können hier Fragen veröffentlichen. Das WPML-Team antwortet im Forum an 6 Tagen pro Woche, 22 Stunden am Tag.
Schlagwörter: Exception
Dieses Thema enthält 14 Antworten, hat 2 Stimmen.
Zuletzt aktualisiert von Lucas Vidal de Andrade Vor 11 Monaten, 1 Woche.
Assistiert von: Lucas Vidal de Andrade.
Verfasser | Beiträge |
---|---|
Dezember 22, 2023 unter 6:53 pm #15121595 | |
cons-2 |
Ich versuche: einen Fehler zu fixen. Wenn ich folgenden Code nutze, spuckt er manchmal unterschiedliche Werte aus. apply_filters( 'wpml_translate_single_string', 'xyz', 'wcml-reviews', 'product-1370-review-29096', 'fr' ); Statt "xyz" nutze ich natürlich den original-string, der zu dem Review gehört. Anwendungsbereich Wir haben in der Review-Sektion von WooCommerce angepinnte Reviews. Angepinnte Reviews werden direkt gerendert, wenn die Seite aufgerufen wird - so, wie es bei WooCommerce üblich ist. Nachladen via Button, damit bei einem normalen Seitenaufruf nicht Hunderte Reviews geladen werden, die eh niemand alle liest. In beiden Fällen werden die Kommentare/Reviews ganz normal über get_comments() aufgerufen und das HTML über die normalen Funktionen von WooCommerce zusammengestellt. Wir hatten dazu früher schon einmal ein Ticket im Forum, mit dem wir die get_comments()-Abrufe gemeinsam erstellt und alle Probleme gelöst haben: Gerendert wird in beiden Fällen - Seitenaufruf direkt + REST-API - über klassische WooCommerce-Vorgehensweise. apply_filters( 'woocommerce_product_review_list_args', array( 'callback' => 'woocommerce_comments' ) ); Wann tritt der Fehler auf - Wenn das WooCommerce-Review-HTML beim Seitenaufruf zusammengestellt wird, dann kommt immer der Originalwert zurück. Der Review-Text wird niemals in die Sprache, die gerade im Frontend angezeigt wird, übersetzt. Wichtig: Wir sprechen über die Nutzung des oben gezeigten Filters. Beispiel: Die Originalsprache von dem Review ist DE. Wenn ich auf der FR-Version der Produktseite in den Reviews bin, wird mir der deutsche Review-Text ausgegeben, obwohl ich den ganz oben gezeigten Filter im php-Template korrekt nutze. Wenn ich auf der EN-Sprache der Produktseite in den Reviews bin und den gleichen Code (auch mit Sprachcode 'fr') nutze, wird mir der französische Text ausgegeben. Es scheint derzeit nicht möglich zu sein, beim Seitenaufruf zu rendernde Review-Texte korrekt übersetzt mit dem Filter abzufragen. Wenn wir den ganz oben gezeigten Code über die REST-API aus dem Frontend aufrufen - egal welche Sprache wir Frontend anzeigen - kommt immer der korrekte Text auf französisch zurück. Es scheint so, als würde der Filter unter bestimmten Umständen andere Werte zurückgeben. Das betrifft übrigens auch individuelle Texte, z.B. Review-Title haben wir als post meta gespeichert und als eigens package in wpml string translation gespeichert. Dort das gleiche Problem mit dem Filter. Immer, wenn der Review-Text nicht übersetzt angezeigt wird, steht auch er Review-Title falsch da. Wir haben das Phänomen mit zahlreichen Reviews getestet. Wenn wir ein Review direkt übersetzt anzeigen wollen im Frontend, dann klappt der Filter nicht. Unterschiedliches Ergebnis - obwohl es exakt er gleiche PHP-Code ist. Wie wurde getestet? In dem php-Template habe ich data-Attribute zu bestehendem Kommentar-HTML hinzugefügt. Dadurch war es mir möglich, das Ergebnis des hart kodierten Filters beim Seitenaufruf und beim REST-Request zu testen ohne die tatsächliche Ausgabe der Reviews zu beeinflussen. Zudem habe ich das verhalten mit mehreren Reviews ausprobiert. Interessant ist auch: Wenn ich in Sprache EN Frontend bin und über den Filter (nur zum testen) die FR-Sprache abrufen will, dann kommt FR zurück. Umgedreht das gleiche Problem. Es scheint so, als könnte der Filter die aktuell angesehene Frontend-Sprache nicht zurückgeben, sofern es sich um ein übersetztes Review handelt. Das Review existiert, die Übersetzungen existieren. URL der/meiner Website, auf der das Problem auftritt Keine Ahnung, ob wir den Fehler nachstellen können bei einer Testumgebung bei euch. Bei Bedarf können wir euch nach den Weihnachtsferien Zugang zu einer Staging-Umgebung geben. Grüße |
Dezember 25, 2023 unter 1:29 pm #15126617 | |
Lucas Vidal de Andrade Supporter
Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Portugiesisch, Brasilien (Português ) Zeitzone: America/Sao_Paulo (GMT-03:00) |
Hallo, danke, dass Sie alle Details geteilt haben. Ich habe die Bewertungen einiger Produkte auf Ihrer Website analysiert und konnte das Problem reproduzieren. Tatsächlich muss ich Ihre Templates und Ihren Code genauer untersuchen. Bitte senden Sie mir die Zugangsdaten zur Staging-Version und bestätigen Sie, ob ich eine Kopie zur lokalen Analyse erstellen darf. Sie finden die erforderlichen Felder dafür unter dem Kommentarbereich, wenn Sie sich einloggen, um Ihre nächste Antwort zu hinterlassen. Die von Ihnen eingegebenen Informationen sind privat, was bedeutet, dass nur Sie und ich darauf Zugriff haben. Möglicherweise muss ich Ihre Website lokal replizieren. Dafür muss ich vorübergehend ein Plugin namens "Duplicator" oder "All in One WP Migration" auf Ihrer Website installieren. Dies ermöglicht es mir, eine Kopie Ihrer Website und Ihrer Inhalte zu erstellen. Sobald das Problem gelöst ist, werde ich die lokale Website löschen. Lassen Sie mich bitte wissen, ob das für Sie in Ordnung ist. WICHTIG Bitte erstellen Sie ein Backup der Website-Dateien und der Datenbank, bevor Sie uns Zugang gewähren. |
Januar 8, 2024 unter 6:45 pm #15162387 | |
Lucas Vidal de Andrade Supporter
Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Portugiesisch, Brasilien (Português ) Zeitzone: America/Sao_Paulo (GMT-03:00) |
Hallo, danke, dass Sie die Informationen geteilt haben. Ich habe alle Details an unser Entwicklerteam weitergeleitet, das nach einer dauerhaften Lösung für Ihr Problem suchen wird, was normalerweise einige Tage dauert. Sobald ich ein Update von ihnen habe, informiere ich Sie. In der Zwischenzeit wünsche ich Ihnen einen großartigen Tag. |
Januar 9, 2024 unter 12:33 pm #15164367 | |
Lucas Vidal de Andrade Supporter
Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Portugiesisch, Brasilien (Português ) Zeitzone: America/Sao_Paulo (GMT-03:00) |
Hallo, danke, dass Sie gewartet haben. Es scheint, dass es eine fehlerhafte Einstellung in WCML gab. Ich habe getestet, das Feld "By default, show reviews in all languages" in WooCommerce > WooCommerce Multilingual & Multicurrency > Einstellungen > Produktbewertungen zu deaktivieren (siehe Bild), und es hat funktioniert. Bitte deaktivieren Sie diese Einstellung auf Ihrer Website und teilen Sie mir die Ergebnisse mit. Diese Lösung sollte funktionieren. Ich freue mich auf Ihr Feedback. |
Januar 9, 2024 unter 12:44 pm #15164471 | |
cons-2 |
Hallo Lucas, danke für den Input. Die Checkbox haben wir bewusst aktiviert, damit die Reviews in allen Sprachen angezeigt werden. Schau gerne auf der Staging vorbei. Haben die Entwickler eine andere Idee? Grüße |
Januar 9, 2024 unter 12:47 pm #15164475 | |
cons-2 |
Edit: Ich vermute mittlerweile, dass der Filter einen Bug hat. |
Januar 9, 2024 unter 1:05 pm #15164553 | |
Lucas Vidal de Andrade Supporter
Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Portugiesisch, Brasilien (Português ) Zeitzone: America/Sao_Paulo (GMT-03:00) |
Hallo, Verstanden. Nur um sicherzustellen: Sie haben die Bewertungen übersetzt und möchten, dass nur die Übersetzungen für die entsprechende Sprache angezeigt werden, richtig? Wie haben Sie diese Bewertungen übersetzt? Bitte teilen Sie mir den Schritt-für-Schritt-Prozess mit, den Sie für die Übersetzung der Bewertungen befolgt haben. Unsere Entwickler analysieren das Problem noch, ich werde sie mit Ihrer Antwort auf dem Laufenden halten. |
Januar 9, 2024 unter 2:40 pm #15165276 | |
cons-2 |
Nur um sicherzustellen: Sie haben die Bewertungen übersetzt und möchten, dass nur die Übersetzungen für die entsprechende Sprache angezeigt werden, richtig? Die angezeigten Reviews werden teilweise in der falschen Sprache ausgespielt. Wenn ich auf einer Produktseite DE bin, dann sollten alle Reviews in deutsch angezeigt werden. Bei uns sind jedoch teilweise original-Reviews zu sehen, obwohl wir Übersetzungen dafür angelegt haben. Das Problem tauchte mal nach irgendeinem WPML-Update auf. Beispiel: Sie sind korrekt mit string translation übersetzt. Wenn ich auf der gleichen Produktseite zum letzten Review scrolle und den Button "view more Reviews" klicke, dann werden weitere Reviews via REST-API geladen. Diese werden korrekt übersetzt angezeigt. Das Problem, das wir beheben möchten, ist, dass die Reviews, die beim Seitenaufruf angezeigt werden, nicht korrekt übersetzt sind. Egal, welche Sprache wir im Frontend ansehen. Wir nutzen die gleichen php-Funktionen, um das Template und die REST-API mit Reviews zu befüllen. Die Tests, die ich dir oben beschrieben habe, zeigen, dass der Filter "wpml_translate_single_string" teilweise unterschiedliche Ergebnisse ausspuckt, wenn ich ihn auf anderen Seite teste. Wenn ich ihn auf einer FR-Seite einsetze und FR abrufen will, kommt ein anderes Ergebnis, als wenn ich ihn auf EN einsetze und FR abrufen will. Schaue dazu gerne noch einmal die html-Attribute, die ich dir zum debuggen erstellt habe, an. Darum glaube ich, dass der Filter "wpml_translate_single_string" ein Lösungsansatz sein könnte. Wie haben Sie diese Bewertungen übersetzt? |
Januar 10, 2024 unter 2:03 pm #15169273 | |
Lucas Vidal de Andrade Supporter
Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Portugiesisch, Brasilien (Português ) Zeitzone: America/Sao_Paulo (GMT-03:00) |
Hallo, danke, dass Sie all diese Details geteilt haben. Ich habe festgestellt, dass die Bewertungen wie erwartet funktionierten, nachdem ich alle Plugins deaktiviert habe (mit Ausnahme von WooCommerce und den WPML-bezogenen Plugins). Das deutet darauf hin, dass das Problem durch ein Drittanbieter-Plugin verursacht wird. Leider trat ein kritischer Fehler in der Staging-Version auf, die Sie mir gesendet haben, als ich versuchte, die Plugins nacheinander wieder zu aktivieren, sodass ich nicht feststellen konnte, welches Plugin den Konflikt verursachte. Ich bitte Sie, die Plugins einzeln zu deaktivieren und die Funktionalität jedes Mal zu testen, um zu sehen, welches Plugin diesen Fehler verursacht. Ich hoffe, das hilft Ihnen weiter. |
Januar 11, 2024 unter 12:36 pm #15174464 | |
cons-2 |
Hallo Lucas, ich habe die Plugins nun nacheinander wieder aktiviert. Und du hast recht. Ich kann dir jedoch nicht sagen, warum es überhaupt einen Einfluss auf den WPML-Filter haben sollte. Wir haben zwei php-files, die Reviews modifizieren. Selbst, wenn ich die zwei files aus dem Plugin entferne, tritt der Fehler weiterhin auf. Der Fehler ist noch da. Was mich interessieren würde: Du solltest sehen, dass die Eigenschaft [fr][out] falsch ist. Bei den neu geladenen Reviews ist [fr][out] auf einmal korrekt. Ich habe keine Idee, warum der Filter spinnt. Fotos anbei. Bitte lass eure Entwickler drüberschauen. Grüße |
Januar 11, 2024 unter 12:41 pm #15174498 | |
cons-2 |
Edit: Siehe child-Theme /woocommerce/single-product/review-meta.php. |
Januar 19, 2024 unter 12:43 pm #15204929 | |
Lucas Vidal de Andrade Supporter
Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Portugiesisch, Brasilien (Português ) Zeitzone: America/Sao_Paulo (GMT-03:00) |
Hallo, wir konnten noch keine Lösung für Ihr Problem finden. In einem ähnlichen Fall hat ein Kunde die Funktion "wpml_translate_single_string" verwendet, um die übersetzten Kommentare aufzurufen. Könnten Sie versuchen, diese Funktion beim initialen Aufruf der Kommentare zu verwenden, um zu sehen, ob es als Workaround funktioniert? Ich warte auf Ihre Rückmeldung. |
Januar 20, 2024 unter 11:47 am #15207090 | |
cons-2 |
Hallo Lucas, bin mir nicht sicher, ob du unser Problem verstanden hast oder Stufe 2 sich die Seite überhaupt mal unter den von mir beschriebenen Aspekten angesehen hat. Wir nutzen bereits wpml_translate_single_string. Das ist unser Problem. Falsche Review-Sprache kann negativen Einfluss auf die Conversion-Rate haben und damit sinnlos unser Ads-Budget verbrennen. Bitte schaut euch das endlich an und fixt das. Grüße |
Januar 20, 2024 unter 12:05 pm #15207098 | |
cons-2 |
Kurze Info: Ich habe die Staging-Umgebung noch einmal verlängert bekommen. |
Januar 23, 2024 unter 6:52 pm #15218578 | |
Lucas Vidal de Andrade Supporter
Sprachen: Englisch (English ) Spanisch (Español ) Deutsch (Deutsch ) Portugiesisch, Brasilien (Português ) Zeitzone: America/Sao_Paulo (GMT-03:00) |
Hallo, nachdem ich mit meinen Kollegen gesprochen und Ihren Antrag analysiert habe, sind wir zu dem Schluss gekommen, dass der Hook wie erwartet funktioniert. Wenn Ihr Plugin deaktiviert wird, funktioniert WPML normal. Dennoch empfehle ich Ihnen, sich dieses andere Ticket eines Kunden anzusehen, der ein ähnliches Problem hatte: Leider können wir Ihnen, da Ihr Problem mit benutzerdefiniertem Code zusammenhängt, keinen weiteren Support anbieten, da unser Forum Problemen mit WPML und anderen direkt damit verbundenen Plugins gewidmet ist. Es tut mir leid, dass wir keine gemeinsame Lösung finden konnten. Wir bieten einen spezialisierten Service für Nutzer an, die Dienste benötigen, die über unseren Support hinausgehen: Wie gesagt, obwohl wir Ihre Anfrage verstanden haben, liegt die Analyse und Korrektur Ihres Codes außerhalb des Umfangs unserer Arbeit. Sollten Sie Probleme mit WPML oder einem anderen Plugin aus unserem Ökosystem haben, können Sie ein neues Ticket eröffnen. Ich wünsche Ihnen viel Glück und einen ausgezeichneten Tag. |