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?

lulalala
la source

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 :)

Domingos Freitas
la source
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.

T.Todua
la source
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

hitesh nagpal
la source