Navigation überspringen

Dieses Thema ist gelöst. Hier finden Sie eine Beschreibung des Problems und der Lösung.

Problem:
Wenn Sie auf der deutschen Version Ihrer Website eine Zimmerreservierung vornehmen, tritt ein 404-Fehler auf, nachdem Sie auf "jetzt buchen" geklickt haben. Dieses Problem tritt nicht auf, wenn Sie die englische Sprachversion verwenden. Der Fehler scheint durch WPML verursacht zu werden, da das Deaktivieren des Plugins das Problem behebt.
Solution:
1) Stellen Sie sicher, dass der Endpunkt "reservation-received" korrekt in "reservierung-erhalten" übersetzt ist, ohne Großbuchstaben und Leerzeichen.
2) Entfernen Sie den Endpoint Key mit demselben Namen, um die URL zu "/booking/reservierung-erhalten/5246/?key=htl_reservation_65f2f1b40a767" zu korrigieren.
3) Fügen Sie den "key"-Parameter in WPML > Sprachen > "URL-Argumente beibehalten zu den beibehaltenen Sprachumschaltparametern" hinzu.
4) Fügen Sie in der Datei

wp-content/plugins/wp-hotelier/includes/htl-page-functions.php

innerhalb der Funktion

htl_get_endpoint_url

folgenden Code hinzu:

if (function_exists('icl_t')) {<br />    $endpoint = apply_filters( 'wpml_translate_single_string', $endpoint, 'WP Endpoints', $endpoint );<br />}

direkt nach dem vorhandenen Code:

$endpoint = isset( HTL()->query->query_vars[ $endpoint ] ) ? HTL()->query->query_vars[ $endpoint ] : $endpoint;

Wir werden versuchen, die Plugin-Autoren zu kontaktieren, um eine dauerhafte Lösung zu finden.

Bitte beachten Sie, dass diese Lösung möglicherweise veraltet oder nicht auf Ihr Problem anwendbar ist. Wenn das Problem weiterhin besteht, empfehlen wir Ihnen, ein neues Support-Ticket zu eröffnen. Wir empfehlen Ihnen auch, die bekannten Probleme zu überprüfen, die Version der dauerhaften Lösung zu verifizieren und zu bestätigen, dass Sie die neuesten Versionen von Themes und Plugins installiert haben. Sollten Sie weitere Unterstützung benötigen, wenden Sie sich bitte an unser Support-Forum.

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: ,

Dieses Thema enthält 16 Antworten, hat 2 Stimmen.

Zuletzt aktualisiert von Marcel Vor 9 Monaten, 2 Wochen.

Assistiert von: Marcel.

Verfasser Beiträge
Februar 14, 2024 unter 5:07 pm #15303782

marianneG-3

ein weiters Problem, sie können gerne dafür ein neues Ticket erstellen:

Wenn ich auf der Homepage ein Zimmer buche, dh. Zimmer auswählen, Daten eingeben und dann auf "jetzt buchen" klicke, dann erscheint error 404.
Das passiert aber nur, wenn ich das mit Spracheinstellung "deutsch" mache. In Sprache "englisch" funktioniert es normal. Auch der Link, der in der Buchungsbestätigung auf die Buchung mitgegeben wird führt zu error 404.
Ich habe das Problem an die WP Holtelier Entwickerl weitergegeben, aber die sagen es läge an WPML und mir folgendes geschrieben:

This is an issue related to WPML. If you deactivate it, the received page works correctly.
For some reason, it seems that WPML is altering the query args and ignoring the registered endpoints:
versteckter Link

Danke, mfG, Alexander

Februar 14, 2024 unter 5:18 pm #15303803

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+01:00)

Hallo Alexander,

die Autoren können die Sprache über unsere API abfragen und anpassen. Zum Beispiel über folgende Hooks:
- https://wpml.org/wpml-hook/wpml_object_id/
- https://wpml.org/wpml-hook/wpml_current_language/

Die Autoren müssen also die Art und Weise, wie und wann Sie der Endpunkt registriert wird, an die aktuelle Sprache anpassen. So können Sie beispielsweise Endpunkte nur für bestimmte Sprachen registrieren oder die Endpoint-Slugs je nach Sprache ändern.

Ich empfehle Ihnen, dass Sie die Autoren einladen, sich hier für eine WPML Zertifizierung zu bewerben. Unser Team steht den Autoren gerne bei der Anpassung deren Codes unterstützend bereit: https://wpml.org/documentation/support/go-global-program/.

Freundliche Grüße
Marcel

Februar 17, 2024 unter 8:57 am #15313513

marianneG-3

Ich kann ihnen nur die Antwort des WP Holtelier weiterleiten und hoffen, dass etwas konstruktives herauskommt:
----------------------------------------------------
As explained in one of my last messages, this doesn’t happen in my local installation. Also, I don’t want to change the endpoint slugs or make them available only to a specific language.
So, the issue is on their part in this case because that’s a global endpoint, and they must handle it correctly.

I can try to join their global program, but this is not something I can do in the next weeks or months.

The quickest solution is to pass my response (what I wrote above), hoping that they find a solution. I would be happy to include the fix if I need to modify the plugin.

Anyway, nobody had this issue with WPML before. So, there’s probably a misconfiguration in WPML or a minor bug. But I wasn’t able to find it when I inspected your installation.

This must be solved by WPML because I literally have no way to check their code and the issue is not from WP Hotelier.

The source code of WP Hotelier is visible to anyone here, so you can give them this URL:
versteckter Link

This is where I register the endpoints:
versteckter Link

------------------------------------------
Danke

Februar 19, 2024 unter 4:39 pm #15319617

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+01:00)

Hallo,

Sie können versuchen das Problem auf dieser Installation nachzustellen: versteckter Link. WPML sowie "WP Hotelier" + "WP Hotelier WPML" ist bereits vorinstalliert.

Dass dieses Problem noch niemand gemeldet hat, liegt eher an der geringen Popularität dieses Plugins. Dazu in Kombination mit dem Multilingual Add-On wird es nur von <10 WPML Kunden verwendet.

Sollte es auf der Sandbox reproduzierbar sein, werde ich dies unserem Compatibility-Team zur weiteren Prüfung weiterleiten. Ob hierfür eine Lösung bereitgestellt wird, wenn die Popularität dementsprechend gering ist, obliegt unserem Team. Sollte ein Code-Workound notwendig sein, liegt dies an den Autoren diesen zu integrieren, da das WPML Add-On von den Autoren ohne unsere Hilfe entwickelt wurde.

Freundliche Grüße
Marcel

Februar 23, 2024 unter 1:20 pm #15337802

marianneG-3

Hallo Marcel,

auf der Sandbox funktioniert alles.
Wenn es also bei einer neuen Installation funktioniert, dann kann es sich ja nur um einen Konfigurationsfehler handeln. Da der Fehler auftritt, je nachdem welche Sprache ich wähle, kann das Problem ja nur an WPML liegen.

Februar 23, 2024 unter 5:11 pm #15338857

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+01:00)

Hallo,

also können wir schon einmal bestätigen, dass kein grundlegendes Kompatibilitäts-Problem vorliegt. Es wäre somit als Nächstes die Einstellungen zu prüfen.

Könnten Sie bitte die Zugangsdaten erneut freischalten? Dann können wir folgendes prüfen:

1) Theme Optionen zwischen Live-Seite und Sandbox abgleichen
2) Slugs in String Translation prüfen
3) WPML -> Languages Einstellungen, speziell ob " Adjust IDs for multilingual functionality" aktiv ist.

Viele Grüße
Marcel

Februar 26, 2024 unter 4:48 pm #15345537

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+01:00)

Hallo,

danke für den Zugang. Es sieht alles korrekt konfiguriert aus. Am besten stellen Sie eine Duplicator Kopie wie hier beschrieben https://wpml.org/faq/provide-supporters-copy-site/ bereit. Damit kann ich es lokal (andere Serverumgebung) testen, ob es isoliert ebenso auftritt. Damit sollen wir der Lösung näher kommen.

Freundliche Grüße
Marcel

März 4, 2024 unter 11:13 am #15369006

marianneG-3

Bitte das Ticket länger offen halten.
Ich bin noch nicht dazu gekommen ihr letztes Kommentar zu bearbeiten.
Danke

März 4, 2024 unter 12:53 pm #15369605

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+01:00)

Gerne!

März 12, 2024 unter 5:25 pm #15400941

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+01:00)

Hallo,

vielen Dank! Ich musste das Theme deaktivieren, da überhaupt keine Buchung möglich war und auch der Kalender zur Datumsauswahl nicht funktionierte. Ich konnte das Problem isoliert ebenso nachstellen und habe es zur weiteren Prüfung an unser Team weitergeleitet.

Wir melden und, wenn wir etwas dazu finden.

Viele Grüße
Marcel

März 14, 2024 unter 5:01 pm #15411600

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+01:00)

Hallo Alexander,

1) Es wurde der Endpunkt "reservation-received" mit "Reservierung erhalten" übersetzt. Dies sollte nicht mit Großbuchstaben und Leerzeichen beginnen. Bitte ändern Sie dies in "reservierung-erhalten".

2) Entfernen Sie ebenso den Endpoint Key mit dem identischen Namen, sodass die URL zu "/booking/reservierung-erhalten/5246/?key=htl_reservation_65f2f1b40a767" wird.

Fügen Sie den "key"-Parameter in WPML > Sprachen > "URL-Argumente beibehalten zu den beibehaltenen Sprachumschaltparametern" hinzu, sodass frei zwischen deutscher und englischer Sprache umgeschaltet werden kann.

3) 3) Hier wird zuerst zu /booking/reservation-received/ statt zum übersetzten Wert weitergeleitet. Lösung für diesen Fall:

Gehen Sie zu wp-content/plugins/wp-hotelier/includes/htl-page-functions.php und in der Funktion htl_get_endpoint_url. Fügen Sie diese Bedingung hinzu:

	if (function_exists('icl_t')) {
		$endpoint =	apply_filters( 'wpml_translate_single_string', $endpoint, 'WP Endpoints', $endpoint );
	}

direkt nach

	$endpoint = isset( HTL()->query->query_vars[ $endpoint ] ) ? HTL()->query->query_vars[ $endpoint ] : $endpoint;

Wir werden versuchen dafür die Plugin-Autoren zu kontaktieren, damit deren Code angepasst werden kann.

Viele Grüße
Marcel

März 15, 2024 unter 6:37 pm #15415899

marianneG-3

Hallo Marcel,

ok, danke, aber ich kenn mich nicht aus.
D.h. ich muss die Punkte ausführen, weil bei 2 kenn ich mich nicht aus, oder machen sie das mit den Autoren?

März 18, 2024 unter 7:38 am #15419326

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+01:00)

Hallo Alexander,

dann wäre es das beste, wenn Sie die Autoren nochmals kontaktieren, damit diese sich im genannten "Go-Global" Programm anmelden: https://wpml.org/documentation/support/go-global-program/.

Unser Team hat entschieden, die Autoren nicht direkt zu kontaktierten, da das Plugin nicht für die Nutzung mit WPML zertifiziert ist, wir also keine Partnerschaft mit den Autoren haben, zudem ist das Plugin nicht wirklich populär unter unseren Kunden und das Problem betraf Ihre spezifische Installation, welches nicht reproduziert werden konnte.

Sie müssten die Punkte im Plugin Code anpassen, damit dies wie gewünscht keinen 404 Fehler zurückgibt.

Viele Grüße
Marcel

März 20, 2024 unter 8:36 pm #15433802

marianneG-3

Ok, punkt 1 und 3 habe ich geschaft.
punkt 2 erster Satz: welchen Endpoint Key soll ich wo löschen?
punkt 2 zweiter Satz: die Stelle wo ich es eintragen soll habe ich gefunden, aber was soll ich dort eintragen?

Danke

März 21, 2024 unter 7:55 am #15434564

Marcel
Supporter

Sprachen: Englisch (English ) Deutsch (Deutsch )

Zeitzone: Europe/Madrid (GMT+01:00)

Hallo,

In den Strings, suchen Sie nach "reservation-received" und ändern Sie die Übersetzung auf "reservierung-erhalten" (anstatt mit den Leerzeichen). Entfernen Sie dann den zusätzlichen Eintrag ebenso in den Strings.

Die URL muss schlussendlich "/booking/reservierung-erhalten" darstellen im Frontend.

Viele Grüße
Marcel