Sauter la navigation

Il s'agit du forum d'assistance technique de WPML, le plug-in multilingue pour WordPress.

Il est accessible à tous, toutefois seuls les clients de WPML peuvent y publier leurs messages. L'équipe du WPML répond sur le forum 6 jours par semaine, 22 heures par jour.

Marqué : 

Ce sujet contient 3 réponses, a 2 voix.

Dernière mise à jour par Nicolas V. Il y a 1 année et 8 mois.

Assisté par: Nicolas V..

Auteur Articles
mars 14, 2023 à 1:43 pm #13243269

benoitF-4

Bonjour, je viens de tester la dernière BETA (2) de WPML 4.6 sur mon site de développement qui utiliser PHP 8.1

En naviguant sur mon site je constate de très nombreuses erreurs provenant de WPML.
L'un de vos développeur m'avait pourtant confirmé que WPML 4.6 serait compatible avec PHP 8.1

Vous trouverez la liste des erreurs en pièce jointe.
Pour reproduire le problème c'est très simple, il faut un site avec WooCommerce, PHP 8.1 et la dernière version de WPML.
A chaque fois que vous chargez une page il y aura ces erreurs

Bonne journée

42d8feb2ece133b8efceea96edf11192.png
mars 15, 2023 à 2:22 pm #13252497

Nicolas V.
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

Bienvenue sur le support de WPML.

Merci de reporter ces problèmes. Je tiens à préciser que nos développeurs ont travaillé sur la compatibilité du plugin avec PHP 8.1 et 8.2. Cependant certaines erreurs sont déclenchées par des plugins tiers avec lesquels WPML interagit. Par exemple WordPress Core et WooCommerce ne sont pas encore compatibles à 100%.
Ref: https://make.wordpress.org/core/2022/01/10/wordpress-5-9-and-php-8-0-8-1/

Je vais tout de même installé un site sandbox avec seulement WPML et String Translation (aucun autre plugin) en local avec PHP 8.1 afin de voir si j'obtiens les même erreurs que vous pour les faire remonter.

Nico

mars 16, 2023 à 2:33 pm #13260793

Nicolas V.
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

Bonjour,

J'ai réussi à reproduire ces erreurs mais en voulant les reporter dans notre système pour les devs, je vois que cela a été déjà fait et voici la réponse donnée:

FYI - these are the PHP 8.1.x Deprecated Notices that you will get on WordPress 6.1.1 without any further plugins installed:
(Return Type errors that are related to the PHP functions offsetExists(), offSetGet(), offsetSet() and OffsetUnset())

PHP Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in C:\Users\andre\Local Sites\avadatypes\app\public\wp-includes\Requests\Cookie\Jar.php on line 63
PHP Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in C:\Users\andre\Local Sites\avadatypes\app\public\wp-includes\Requests\Cookie\Jar.php on line 73
PHP Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in C:\Users\andre\Local Sites\avadatypes\app\public\wp-includes\Requests\Cookie\Jar.php on line 89
PHP Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in C:\Users\andre\Local Sites\avadatypes\app\public\wp-includes\Requests\Cookie\Jar.php on line 102
PHP Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in C:\Users\andre\Local Sites\avadatypes\app\public\wp-includes\Requests\Cookie\Jar.php on line 111
PHP Deprecated: http_build_query(): Passing null to parameter #2 ($numeric_prefix) of type string is deprecated in C:\Users\andre\Local Sites\avadatypes\app\public\wp-includes\Requests\Transport\cURL.php on line 530
PHP Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in C:\Users\andre\Local Sites\avadatypes\app\public\wp-includes\Requests\Utility\CaseInsensitiveDictionary.php on line 40
PHP Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in C:\Users\andre\Local Sites\avadatypes\app\public\wp-includes\Requests\Utility\CaseInsensitiveDictionary.php on line 51
PHP Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in C:\Users\andre\Local Sites\avadatypes\app\public\wp-includes\Requests\Utility\CaseInsensitiveDictionary.php on line 68
PHP Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in C:\Users\andre\Local Sites\avadatypes\app\public\wp-includes\Requests\Utility\CaseInsensitiveDictionary.php on line 82
PHP Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in C:\Users\andre\Local Sites\avadatypes\app\public\wp-includes\Requests\Utility\CaseInsensitiveDictionary.php on line 91

This means, if someone reports an error like those, then it could in fact be that you will find WPML inside the Call Stack but the error is actually triggered by WordPress Core, as 6.1.1 is not yet fully compatible yet.

J'ai donc fais le test en désactivant WPML et en passant de WP6.0.3 à 6.1.1 et j'ai bien les même erreurs (voir capture).

En résumé WPML appel des fonctions de WP Core qui ont déjà ces erreurs et c'est pour cela que WPML apparait dans le stack. Cela devrait être corrigé dans WP 6.2 bientôt.
Ref: https://core.trac.wordpress.org/ticket/54672
https://make.wordpress.org/core/2022/01/10/wordpress-5-9-and-php-8-0-8-1/#php-8-1-remaining-known-deprecation-notices

screenshot-2023.03.16-09_29_48.png
mars 16, 2023 à 2:36 pm #13260823

Nicolas V.
Supporter

Les langues: Anglais (English ) Français (Français )

Fuseau horaire: America/Lima (GMT-05:00)

PS: J'ai oublié de mentionner que j'utilise WPML 4.6 et String Translation 3.2.4 (pas de version Beta).

Je pense que vous le savez déjà mais vous pouvez télécharger les dernières versions nos plugins directement dans votre compte WPML.
- Allez sur https://wpml.org/fr/account/downloads/
- et cliquez sur "Télécharger WPML manuellement" pour les voir et les télécharger
Vous pouvez cliquer sur l'icône info pour voir le changelog et toutes les versions)
- Puis dans votre backoffice, allez dans "Extensions > Ajouter" et utiliser le bouton en haut de l'écran pour téléverser le fichier .zip

Nico