[Résolu] Plugin String translation fait planter le site en BO
Ce sujet est résolu. Voici une description du problème et de la solution.
Problem:
À chaque fois que le client activait String Translation, il avait une erreur critique:
[11-Jan-2023 14:13:58 UTC] PHP Fatal error: Uncaught ValueError: Unknown format specifier "a" in /www/theophileberthon_324/public/wp-admin/includes/class-wp-list-table.php:962
Stack trace:
#0 /www/theophileberthon_324/public/wp-admin/includes/class-wp-list-table.php(962): sprintf('% articles', '26')
#1 /www/theophileberthon_324/public/wp-admin/includes/class-wp-list-table.php(1420): WP_List_Table->pagination('top')
#2 /www/theophileberthon_324/public/wp-admin/includes/class-wp-list-table.php(1353): WP_List_Table->display_tablenav('top')
#3 /www/theophileberthon_324/public/wp-admin/plugins.php(773): WP_List_Table->display()
#4 {main}
thrown in /www/theophileberthon_324/public/wp-admin/includes/class-wp-list-table.php on line 962
Solution:
Il s'agissait d'une chaine contenant un placeholder mal traduite dans string translation. Les placeholders doivent rester identiques. %s items était traduit par % articles au lieu de %s articles
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.
Aucun de nos assistants n'est disponible aujourd'hui sur le forum French. Veuillez créer un ticket, et nous nous le traiterons dès notre prochaine connexion. Merci de votre compréhension.
Bonjour,
suite à la mise à jour en php 8, le site a une erreur critique en back office.
J'ai testé tous les plugins et lorsque que wplm String Translation est désactivé, le site fonctionne à nouveau. Voir les captures.
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
Bienvenue sur le support de WPML.
Je vois que vous avez bien les dernières version de WPML et String Translation qui sont compatibles avec PHP 8.
1. Comme indiqué sur la capture vous avez dû recevoir un email avec toutes les informations concernant cette erreur critique. Pourriez vous partager cette information? L'email est envoyé à l'adreese enregistrée dans "Réglages > Général > Adresse e-mail d’administration"
2. Si vous n'avez pas cet email dans ce cas activez WP_DEBUG:
Accédez à votre serveur via FTP et ouvrez wp-config.php (à la racine de votre installation WordPress).
Insérez ces lignes just avant /* That's all, stop editing! Happy blogging. */
Fatal error: Uncaught Error: Unknown format specifier "a"
in /www/theophileberthon_324/public/wp-admin/includes/class-wp-list-table.php on line 962
Call stack:
sprintf()
wp-admin/includes/class-wp-list-table.php:962
WP_List_Table::pagination()
wp-admin/includes/class-wp-list-table.php:1420
WP_List_Table::display_tablenav()
wp-admin/includes/class-wp-list-table.php:1353
WP_List_Table::display()
wp-admin/plugins.php:773
Mais ce n'est QUE lorsque j'active String Translation... Et dans ce fameux fichier class-wp-list-table.php je n'ai pas de line 962, mais 348 lines.
Vous avez déjà entendu parler de ce type d'erreur ? Parce que moi jamais 😅
Merci de votre aide !
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour Aurélien,
Merci pour cette information. Afin de faire remonter votre ticket, j'ai besoin de répliquer votre site sur nos serveurs. Pour cela, vous devez installer temporairement l'extension "Duplicator". Elle vous permettra de faire une copie complète de votre site et de son contenu.
J'ai activé un champ privé pour votre prochaine réponse pour partager les fichiers (package + installer).
- Vous pouvez exclure /wp-uploads pour réduire le poids de la copie
- Une fois le package est prêt, si les fichiers sont trop lourds, vous pouvez partager un lien Google Drive, Dropbox, WeTransfer ou autre.
Bonjour Nicolas,
Je ne parviens pas a faire l'archive, j'ai une erreur niveau serveur.
Si je vous fais un site staging, duplication exacte, avec code FTP et accès total est ce bon pour vous ?
Il est désormais impossible de commander sur le site, j'ai désactivé String Translation, mais WPML fait une erreur fatal PHP, voici l'erreur :
PHP message: PHP Fatal error: Uncaught Error: Call to undefined function WCML\Tax\Strings\icl_get_string_id() in /www/theophileberthon/public/wp-content/plugins/woocommerce-multilingual/classes/Tax/Strings/Hooks.php:26
Il faut trouver une solution très rapidement...
Merci !
Les langues: Anglais (English )Français (Français )
Fuseau horaire: America/Lima (GMT-05:00)
Bonjour,
Essayer de restaurer un backup récent de votre site pour éviter les problèmes. Et oui vous pouvez préparer une copie staging.
J'ai activé un champ privé pour votre prochaine réponse où vous pourrez partager ces informations de manière confidentielle avec notre support. Ne partagez pas votre propre compte admin, créez un nouveau compte que vous pourrez éliminer une fois l'assistance terminée.
IMPORTANT: Avant de continuer, faites un backup complet de votre site et base de données.