Erreur avec un plugin wordpress
Fermé
lou9
-
Modifié le 30 juil. 2021 à 16:46
jordane45 Messages postés 38446 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 février 2025 - 30 juil. 2021 à 17:27
jordane45 Messages postés 38446 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 février 2025 - 30 juil. 2021 à 17:27
A voir également:
- Erreur avec un plugin wordpress
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 3005 france tv - Forum Lecteurs et supports vidéo
- Code erreur f3500-32 ✓ - Forum Bbox Bouygues
2 réponses
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
526
30 juil. 2021 à 16:46
30 juil. 2021 à 16:46
Bonjour,
Ca serait sympa d'indiquer quelle est la ligne 1994 dans ton code plutôt que de nous laisser deviner où est l'erreur ;)
A priori, l'erreur semble venir de la ligne suivante :
-> la fonction array_merge() attends des tableaux en paramètres, or le 2e paramètre $wcmvp_cookie n'est pas un tableau si la variable $_COOKIE['wcmvp_single_prod_view'] est vide.
En effet lorsque tu initialises la variable $wcmvp_cookie avec ce code :
-> la variable $wcmvp_cookie sera bien un tableau si la variable $_COOKIE['wcmvp_single_prod_view'] est vide, dans le cas contraire cette variable va récupérer le retour de la fonction sanitize_text_field(), or cette dernière fonction retourne une chaine de caractère et non un tableau.
https://developer.wordpress.org/reference/functions/sanitize_text_field/
Au passage, ton code serait tellement plus lisible sur le forum avec les balises de code : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Bonne journée,
Ca serait sympa d'indiquer quelle est la ligne 1994 dans ton code plutôt que de nous laisser deviner où est l'erreur ;)
A priori, l'erreur semble venir de la ligne suivante :
$wcmvp_merged = array_merge($wcmvp_id, $wcmvp_cookie);
-> la fonction array_merge() attends des tableaux en paramètres, or le 2e paramètre $wcmvp_cookie n'est pas un tableau si la variable $_COOKIE['wcmvp_single_prod_view'] est vide.
En effet lorsque tu initialises la variable $wcmvp_cookie avec ce code :
$wcmvp_cookie = (isset($_COOKIE['wcmvp_single_prod_view']) && !empty($_COOKIE['wcmvp_single_prod_view'])) ? sanitize_text_field(json_decode($_COOKIE['wcmvp_single_prod_view'])) : array();
-> la variable $wcmvp_cookie sera bien un tableau si la variable $_COOKIE['wcmvp_single_prod_view'] est vide, dans le cas contraire cette variable va récupérer le retour de la fonction sanitize_text_field(), or cette dernière fonction retourne une chaine de caractère et non un tableau.
https://developer.wordpress.org/reference/functions/sanitize_text_field/
Au passage, ton code serait tellement plus lisible sur le forum avec les balises de code : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Bonne journée,
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 739
30 juil. 2021 à 16:51
30 juil. 2021 à 16:51
Bonjour,
Déjà, merci d'utiliser les balise de code pour poster du code sur le forum.
Explications à lire entièrement, disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite :
Le !empty fait déjà un ISSET .. ce n'est donc pas utile de mettre les deux.
Et enfin, le message t'indique que tu ne retournes pas un array...
faudrait voir ce que fait ta fonction sanitize_text_field .. mais vu le nom .. je doute qu'elle retourne un array
n'aurais tu pas inversé l'ordre des fonctions ?
De plus, pour que le json_decode retourne un array, il faut lui passer un second paramètre à true
Déjà, merci d'utiliser les balise de code pour poster du code sur le forum.
Explications à lire entièrement, disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite :
Le !empty fait déjà un ISSET .. ce n'est donc pas utile de mettre les deux.
Et enfin, le message t'indique que tu ne retournes pas un array...
faudrait voir ce que fait ta fonction sanitize_text_field .. mais vu le nom .. je doute qu'elle retourne un array
n'aurais tu pas inversé l'ordre des fonctions ?
De plus, pour que le json_decode retourne un array, il faut lui passer un second paramètre à true
$wcmvp_cookie = !empty($_COOKIE['wcmvp_single_prod_view'])) ? json_decode(sanitize_text_field($_COOKIE['wcmvp_single_prod_view']),true) : array(); if (isset($wcmvp_cookie) && !in_array($wcmvp_post_id, $wcmvp_cookie)) {
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 739
>
lou9
30 juil. 2021 à 17:25
30 juil. 2021 à 17:25
ben tu dois remplacer et non ajouter....
30 juil. 2021 à 17:07
30 juil. 2021 à 17:27