web-dev-qa-db-fra.com

Comment envoyer un message lors de l'activation du plugin

Je développe un plugin, mais pendant la phrase d'activation, je suis constamment confronté à des bugs. Cependant, il n’existe pas de moyen simple d’afficher des messages d’erreur, puisqu’une répétition de l’erreur entraînerait une erreur "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?

9
lulalala

À 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 envoyer une erreur à 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, vous devez toujours utiliser E_USER_ERROR, sinon le message ne sera pas affiché.

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

9
Domingos Freitas

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 une erreur, visualisez "my_loggg.txt" dans votre dossier de plugins.

2
T.Todua

1) S'il vous plaît supprimer l'espacement supplémentaire dans les pages intérieures ou les pages de plugin.

2) supprimez le style en ligne dans les pages ou les pages de plugin.

sa a fonctionné pour moi à chaque fois. J'ai utilisé plusieurs fois la même méthode. lorsque le problème est survenu dans la page du plugin ou dans la page Wordpress.

Cordialement,

Hitesh Nagpal

0
hitesh nagpal