Zum Inhalt springen Zur Seitenleiste springen

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

Problem:
Sie sehen eine Warnung auf der Übersetzungsseite, dass Ihre Webseite nicht die Mindestanforderungen von WPML erfüllt. Dies wird durch eine Wechselwirkung zwischen WPML und dem Plugin „WooCommerce Vehicle Parts Finder – Make/Model/Year/Engine/Category/Keyword“ verursacht, das serialisierte Daten in Cookies speichert. Diese serialisierten Cookies führen dazu, dass die interne REST-Prüfung von WPML fehlschlägt.
Solution:
Als temporären Workaround können Sie die Art und Weise ändern, wie WPML Cookies während der REST-Prüfung filtert. Sie sollten die Methode

WPML\Infrastructure\WordPress\SharedKernel\Server\Application\CheckRestIsEnabled::getCookiesWithoutSessionId

im Pfad

/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/src/Infrastructure/WordPress/SharedKernel/Server/Application/CheckRestIsEnabled.php

anpassen. Ersetzen Sie die Methode durch eine Version, die serialisierte Cookies ignoriert. Dies ermöglicht eine erfolgreiche Durchführung der Prüfung.

Wenn diese Lösung veraltet erscheint oder nicht auf Ihr Problem zutrifft, empfehlen wir Ihnen, ein neues Support-Ticket zu eröffnen. Überprüfen Sie auch die bekannten Probleme und stellen Sie sicher, dass Sie die neuesten Versionen Ihrer Themes und Plugins installiert haben.

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 1 Antworten, hat 0 Stimmen.

Zuletzt aktualisiert von jUergenG-4 Vor 1 Monat, 1 Woche.

Assistiert von: Bruno Kos.

Autor Beiträge
November 24, 2025 um 11:34 a.m.

jUergenG-4

Hintergrund des Themas:
Ich versuche, ein Problem zu lösen, das nach dem letzten Update aufgetreten ist. Auf der Übersetzungsseite wird eine Warnung angezeigt, dass die Webseite nicht die Mindestanforderungen von WPML erfüllt. Ich habe bereits die Plugins WP Fastest Cache und Wordfence deaktiviert, aber das Ergebnis hat sich nicht geändert. Die Übersetzung scheint jedoch ohne Probleme zu funktionieren.

Die Symptome:
Warnung auf der Übersetzungsseite, dass die Webseite nicht die Mindestanforderungen von WPML erfüllt. Problem mit der REST-API wird auf der WPML Support Seite angezeigt, obwohl der Endpoint-Test erfolgreich ist.

Fragen:
Warum wird die Warnung angezeigt, dass die Webseite nicht die Mindestanforderungen von WPML erfüllt?
Warum zeigt die WPML Support Seite ein Problem mit der REST-API an, obwohl der Endpoint-Test erfolgreich ist?

November 25, 2025 um 7:11 a.m. #17606676

Bruno Kos
WPML-Unterstützer seit 12/2018

Sprachen: Englisch (English ) Deutsch (Deutsch ) Französisch (Français )

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

Wir haben festgestellt, dass das Problem durch eine Wechselwirkung zwischen WPML und dem Plugin „WooCommerce Vehicle Parts Finder – Make/Model/Year/Engine/Category/Keyword“ verursacht wird. Wenn dieses Plugin aktiviert ist, speichert es serialisierte Daten in Cookies. WPML führt eine interne Anforderungen-/REST-Prüfung durch, bei der Cookie-Werte validiert werden. Da diese Cookies serialisiert sind, schlägt diese Prüfung fehl und meldet fälschlicherweise einen Fehler. Wenn das Vehicle-Parts-Finder-Plugin deaktiviert ist, wird die Prüfung erfolgreich durchgeführt und das Problem tritt nicht mehr auf.

Wir haben diesen Fall zudem an unsere Entwickler eskaliert, damit sie an einer dauerhaften Lösung arbeiten können.

Als temporären Workaround können Sie versuchen, die Art und Weise zu ändern, wie WPML Cookies während der REST-Prüfung filtert, indem Sie die folgende Methode anpassen:

`WPML\Infrastructure\WordPress\SharedKernel\Server\Application\CheckRestIsEnabled::getCookiesWithoutSessionId`

Pfad:

`/wp-content/plugins/sitepress-multilingual-cms/vendor/wpml/wpml/src/Infrastructure/WordPress/SharedKernel/Server/Application/CheckRestIsEnabled.php`

Sie können die Methode durch die folgende Version ersetzen, die serialisierte Cookies ignoriert, sodass die Prüfung erfolgreich durchgeführt werden kann:

private function getCookiesWithoutSessionId(): array {
    $cookies = array_diff_key( $_COOKIE, [ 'PHPSESSID' => '' ] );

    foreach ( $cookies as $name => $value ) {
        // Only keep simple string values
        if ( ! is_string( $value ) ) {
            unset( $cookies[ $name ] );
            continue;
        }

        // Drop cookies that look like raw PHP serialized data:
        // a:..., s:..., O:..., etc. Your example "a:2:{s:6:"search"...}"
        if ( preg_match( '/^[aObis]:\d+:/', $value ) ) {
            error_log(
                sprintf(
                    'WPML_REST_CHECK: Skipping serialized cookie "%s" with value "%s" in REST test.',
                    $name,
                    substr( $value, 0, 100 )
                )
            );
            unset( $cookies[ $name ] );
            continue;
        }

        // Optionally, be extra safe: drop cookies with raw semicolons
        // (they should normally be encoded in HTTP headers).
        if ( strpos( $value, ';' ) !== false ) {
            error_log(
                sprintf(
                    'WPML_REST_CHECK: Skipping cookie "%s" with semicolons in value for REST test.',
                    $name
                )
            );
            unset( $cookies[ $name ] );
            continue;
        }
    }

    return $cookies;
}

Könnten Sie das bitte ausprobieren und mir mitteilen, ob es funktioniert?

November 28, 2025 um 8:02 a.m. #17617330

jUergenG-4

Super funktioniert - vielen Dank!