Comment afficher un message lors de l'activation du plugin


10

Je développe un plugin, mais pendant la phrase d'activation, je suis constamment confronté à des bugs. Cependant, il n'y a pas de moyen simple d'afficher les messages d'erreur, car l'écho des éléments entraînerait une erreur de «sortie non impactée». J'ai essayé le hook admin_message mais cela ne fonctionne pas. Comment puis-je alerter l'utilisateur si une étape de l'activation a échoué avec raison?

Réponses:


9

À des fins de test, vous pouvez utiliser le système de journalisation (php_error.log):

error_log('Plugin activated', 0);

// Check for DB table existance
if(!$this->hasDBTable()){
    error_log('Database not present', 0);
    if($this->createCELabelsDBTables()){
        error_log('Database was created.', 0);
    } else {
        error_log('Error creating the CE Labels Plugin db tables!', 0);
    }

} else {
    error_log('Database OK', 0);
}

Pour générer une erreur pour l'utilisateur sans l'erreur "En-têtes déjà envoyés", vous pouvez utiliser la fonction php trigger_error:

trigger_error('PLUGIN OK',E_USER_ERROR);

Avec Wordpress doit toujours être E_USER_ERROR sinon il n'affichera pas le message.

Je sais que error_log fonctionne parfaitement depuis que je l'utilise, mais le trigger_error affiche les informations indispensables. Essayez-le et voyez par vous-même :)


Savez-vous où trouver de la documentation supplémentaire sur la fonction error_log? J'ai du mal à trouver comment le faire fonctionner.
Nathan Arthur

Pour ceux qui pourraient venir après: php.net/manual/en/function.error-log.php
Nathan Arthur

4

SOLUTION:

register_activation_hook( __FILE__, 'my_activation_func' ); function my_activation_func() {
    file_put_contents(__DIR__.'/my_loggg.txt', ob_get_contents());
}

insérez ce code dans le plugin, et après erreur, affichez "my_loggg.txt" dans votre dossier de plugins.


Cela a fonctionné pour moi, mais j'ai dû le mettre en bas du fichier! Sinon, il n'a pas capturé la sortie.
Ben Ogorek

0

1) Veuillez supprimer l'espacement supplémentaire dans les pages intérieures ou les pages de plug-in.

2) supprimez le style en ligne dans les pages ou les pages de plug-in.

cela a fonctionné pour moi à chaque fois. j'ai utilisé plusieurs fois la même méthode. lorsque l'erreur de problème dans la page du plugin ou la page Wordpress.

Cordialement,

Hitesh Nagpal

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.