- Statut : non résolu
- Ce sujet contient 7 réponses, 4 participants et a été mis à jour pour la dernière fois par
Cherche et trouve, le il y a 6 années et 2 mois.
-
AuteurMessages
-
11 juin 2015 à 11 h 45 min #550902
Bonjour,
Ma configuration WP actuelle
– Version de WordPress : 4.2.2Problème(s) rencontré(s) :
Après avoir activé le mode debug, la réactivation de plugins aboutit à l’écran textuel d’erreur suivant
Notice: has_cap est appelé avec un argument qui est déprécié depuis la version 2.0 ! L’utilisation des niveaux d’utilisateur par les extensions et thèmes est désormais interdite. Utiliser les rôles et capacités à la place. in /home/spacprot/www/wp3-01/wp-includes/functions.php on line 3508
Voulez-vous vraiment faire cela ?qui n’offre pas d’option pour continuer (forcer) ni de moyen de contourner, la seule option est de fermer ou retourner à la page précédente : « gestion des extension » dont il est impossible de sortir. C’est un « deadlock » incontournable.
La recherche fine des usages de has_cap montre qu’il n’y a pas de cas ou le paramètre n’est pas une chaîne (parfois une variable qui est une chaîne), il n’est jamais numérique ( ce qui serait un usage obsolete).
Je ne trouve pas de moyen économique de retrouver la source de l’erreur.
Comment activer les plugins sans avoir ce qui semble une ‘fausse » erreur, ni aller changer le code de WP 4.2.2 ?
Trebly
11 juin 2015 à 14 h 51 min #1009393Bonjour,
N’est-il pas possible que tu utilises un plugin obsolète qui n’est plus compatible avec 4.2.2 ?
Désactives tous tes plugins et réactives les un par un pour voir lequel est incriminé …11 juin 2015 à 15 h 17 min #1009394Bonsoir,
C’est le cas analysé in fine.
Mais il a fallu que je modifie : public function has_cap( $cap ) dans capabilities.php pour ajouter une fonction de trace et trouver le point exact impossible à localiser autrement.
Il n’est pas normal que ce message d’alerte (cf. Codex) conduise à un blocage, puisqu’il est impossible d’activer le plugin tant que l’erreur qui est détectée à l’activation n’est pas trouvée.
Ceci à moins de de désactiver le mode debug, activer le plugin, réactiver le mode debug et attendre d’avoir un message qui ne dit pas et ne permet pas de trouver l’erreur, c’est tordu.Comment un message peut-il poser une question « Voulez-vous vraiment faire cela ? » sans qu’aucun bouton ne soit activé pour dire oui ou non, la seule solution est le retour via le navigateur. C’est bizarre, de plus pour un simple message d’alerte.
Quand a désactiver un par un les plugins (85) on voit que le temps passé ne compte pas.
Est-ce à l’utilisateur de procéder au déboggage et de construire les outils qui le permettent ?
Bon, je sais comment faire et j’ai trouvé, mais ce n’est pas le cas général.
Entre le début d’incident et sa solution c’est une journée de travail, vraiment pas efficace. Avec mon développement il faut dix minutes… pour trouver et corriger. Mais plusieurs heures pour diffuser l’information.
Cordialement
Trebly
11 juin 2015 à 15 h 19 min #1009395Désactivé le mode débug 🙂
et cherche le responsable, pour l’informer11 juin 2015 à 15 h 31 min #1009396Trebly wrote:Quand a désactiver un par un les plugins (85) on voit que le temps passé ne compte pas.85 Plugins ! C’est énorme ! Tu as le site internet le plus touffus que j’ai jamais vu
tu tends le bâton
Dur dur de suivre les mises à jour dans ce contexte, du coup les problèmes de compatibilité doivent être réguliers … Avant de faire une mise à jour de version majeure de WordPress, analyse bien les modifications déclarées, et assures-toi de la compatibilité de tes 85 plugins …Trebly wrote:Comment un message peut-il poser une question « Voulez-vous vraiment faire cela ? » sans qu’aucun bouton ne soit activé pour dire oui ou non, la seule solution est le retour via le navigateur. C’est bizarre, de plus pour un simple message d’alerte.Il y a peut-être un ticket à ouvrir pour une modification du core WordPress … Ou est-ce la traduction qui n’est pas bonne ? A vérifier dans le dictionnaire fr_FR.po …
11 juin 2015 à 17 h 23 min #1009397Bah 85 plugins ça dépend de ce pourquoi ils sont faits, ce n’est pas obligatoirement énorme
Et pour les désactiver tous d’un coup il suffit de cocher une case
Pour info, ceci n’est certainement pas un problème du core de WordPress : ici ce sont les données générées par un plugin qui posent problème lors de leur lecture par une fonction de wordpress. L’erreur est donc détectée par un fichier du core, mais elle vient d’un plugin
« Voulez vous vraiment faire cela » est lié à des problèmes d’autorisation. As tu réellement cherché toutes les occurences de has_cap dans tes 85 plugins avant d’incriminer le core ?
16 juin 2015 à 17 h 44 min #1009398Bonsoir,
Pour faire très bref :1- J’ai ajouté une trace de la pile d’appel dans le traitement d’erreur de WP, ce qui permet de connaitre le lieu exact de l’erreur. Nécessairement un peu volumineux, il pourrait être en option…
2- J’ai corrigé deux plugins : Il est très utile de se mettre en mode debug (wp ini) pour détecter les erreurs lors de l’installation ou activation.
– deux has_cap indirects
3-Désactiver 80 plugins c’est facile, redémarrer le site quand plus rien en fonctionne c’est plus dur. Il faut gérer la liste de plugins avec un tableur et tenir à jour toutes les modifs pour s’en sortir. Bien m’en a pris puisque par dichotomie et contrôles en trois heures j’ai remis en service.
4- Il n’y a pas de problème du core de WordPress excepté que quand une erreur, même si c’est une simple alerte, il dit il y a quelque chose quelque part qui ne va pas… démerdez-vous. Même si je sais très bien où est l’erreur (on le sait toujours) je ne vous le dirait pas na, j’ai la flemme… Mais c’est « conforme » et bien sur l’erreur d’origine vient probablement d’un plugin non à jour.
5-« Voulez vous vraiment faire cela » est lié à des problèmes d’autorisation : ça j’ai compris. Mais ce message pose deux problèmes :
– Il pose une question dont on n’a pas le sens et
– qui n’a pas de possibilité de réponse…En fait en général, la solution est
– de retourner au « précédent » avec le navigateur,
– aller sur une deuxième tab de l’administration sur laquelle aucune modification n’a été faite
– faire une actualisation
– relancer le demande d’origineExplication :
– lors de la première demande, la connexion est perdue d’où l’erreur, mais elle n’est pas récupérée (mais ça WP ne le saurait pas ?, puisque la cause de ce genre de problème n’est jamais donnée, mais comme je ne suis pas totalement idiot, je fais lui forcer la main)
– la demande d’actualisation sans modification, elle rétablit la connexion, mais sans le dire.
– la nouvelle demande est satisfaite, puisque la connexion et droits sont OK… CQFD
(aller sur une page et relogguer marche aussi)
solution de fond :
– voir où le message d’erreur est produit (voir fichiers langue et chercher l’expression d’origine en anglais dans le code)
– remonter au code erreur,
– associer un message en clair au code erreur
– récupérer l’erreur si c’est possible (test de re-connexion)Le problème des plugins qui deviennent une part essentielle d’une application de WP, est leurs bugs et leur mise à jour. J’en suis au 7ème fork, mais je n’ai pas le temps de publier.
Je ne mettrai plus à jour WP sur mon appli en cours, les test c’est une semaine de travail au minimum. Et encore, en cas d’incompatibilité détectée de plugin nécessaire, il peut falloir des mois de travail.
J’ai pris deux mois au passage 4.2.1 4.2.2.Cordialement
Trebly
29 novembre 2016 à 11 h 53 min #1606873Bonjour,
cela fait des jours que je cherche des réponses à ces messages d’erreur. Et même lorsque je poste un message je n’obtiens pas de réponse.
Est ce qu’ici quelqu’un pourrait m’aider ?
Merci
WP version 4.6.1–fr_FR,
Info serveur: Apache
Version PHP: 5.6.21Version de cURL: 7.21.0, OpenSSL/0.9.8o
SUHOSIN Installé: –
Version MySQL: 5.7.14
Theme Florida Child Version: 7.3.2… func_array() expects parameter 1 to be a valid callback, non-static method ajaxNewsletter::process_newsletterSub() should not be called statically in <b>/home/bdd/www/wp-includes/plugin.php</b> on line <b>524</b>
<b>Strict Standards</b>: call_user_func_array() expects parameter 1 to be a valid callback, non-static method ajaxNewsletter::checkAutomaticNewsletter() should not be called statically in <b>/home/bdd/www/wp-includes/plugin.php</b> on line <b>524</b>
<b>Strict Standards</b>: call_user_func_array() expects parameter 1 to be a valid callback, non-static method ajaxNewsletter::add_pages() should not be called statically in <b>/home/bdd/www/wp-includes/plugin.php</b> on line <b>524</b>
<b>Notice</b>: has_cap est appelé avec un argument qui est déprécié depuis la version 2.0.0 ! L’utilisation des niveaux d’utilisateur par les extensions et thèmes est désormais interdite. Utiliser les rôles et capacités à la place. in <b>/home/bdd/www/wp-includes/functions.php</b> on line <b>3891</b>
Sur la page des réglages Ajax Newsletter :
…
array() expects parameter 1 to be a valid callback, non-static method ajaxNewsletter::process_newsletterSub() should not be called statically in /home/bdd/www/wp-includes/plugin.php on line 524Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method ajaxNewsletter::checkAutomaticNewsletter() should not be called statically in /home/bdd/www/wp-includes/plugin.php on line 524
Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method ajaxNewsletter::add_pages() should not be called statically in /home/bdd/www/wp-includes/plugin.php on line 524
Notice: has_cap est appelé avec un argument qui est déprécié depuis la version 2.0.0 ! L’utilisation des niveaux d’utilisateur par les extensions et thèmes est désormais interdite. Utiliser les rôles et capacités à la place. in /home/bdd/www/wp-includes/functions.php on line 3891
Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method ajaxNewsletter::admin_css() should not be called statically in /home/bdd/www/wp-includes/plugin.php on line 524
So, take her wrap, fellasStrict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method ajaxNewsletter::newsletterConfig() should not be called statically in /home/bdd/www/wp-includes/plugin.php on line 524
Notice: Undefined index: del in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/backoffice.php on line 10
Notice: Undefined index: actv in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/backoffice.php on line 11
Notice: Undefined index: send in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/backoffice.php on line 19
Notice: Undefined index: count in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/backoffice.php on line 63
Strict Standards: Non-static method ajaxNewsletter::saveSettings() should not be called statically in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/backoffice.php on line 72
Strict Standards: Non-static method ajaxNewsletter::update_option() should not be called statically in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/wp-ajax-newsletter.php on line 1135
Strict Standards: Non-static method ajaxNewsletter::update_option() should not be called statically in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/wp-ajax-newsletter.php on line 1135
Strict Standards: Non-static method ajaxNewsletter::update_option() should not be called statically in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/wp-ajax-newsletter.php on line 1135
Strict Standards: Non-static method ajaxNewsletter::update_option() should not be called statically in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/wp-ajax-newsletter.php on line 1135
Strict Standards: Non-static method ajaxNewsletter::update_option() should not be called statically in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/wp-ajax-newsletter.php on line 1135
Strict Standards: Non-static method ajaxNewsletter::update_option() should not be called statically in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/wp-ajax-newsletter.php on line 1135
Strict Standards: Non-static method ajaxNewsletter::printMessage() should not be called statically in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/backoffice.php on line 74
Strict Standards: Non-static method ajaxNewsletter::printSendDiv() should not be called statically in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/backoffice.php on line 104
Send NewsletterSettings updated successfully.
Strict Standards: Non-static method ajaxNewsletter::getPostsSince() should not be called statically in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/wp-ajax-newsletter.php on line 687
Notice: Undefined variable: toString in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/wp-ajax-newsletter.php on line 772
Strict Standards: Non-static method ajaxNewsletter::getMemberCount() should not be called statically in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/wp-ajax-newsletter.php on line 690
Strict Standards: Non-static method ajaxNewsletter::getNumberText() should not be called statically in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/wp-ajax-newsletter.php on line 694
Strict Standards: Non-static method ajaxNewsletter::getNumberText() should not be called statically in /home/bdd/www/wp-content/plugins/wp-ajax-newsletter/wp-ajax-newsletter.php on line 695
This will send your newsletter containing 83 posts to 0 subscribers.
The newsletter was never sent.
Note:
The newsletter has no active subscribers.
Send only the last posts. -
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.