Як вивести повідомлення під час активації плагіна


10

Я розробляю плагін, але під час фрази активації я постійно стикаюся з помилками. Однак не існує простого способу відображення повідомлень про помилки, оскільки повторення матеріалів призведе до помилки "несподіваного виводу". Я спробував гачок admin_message, але він не працює. Як я можу попередити користувача, якщо якийсь етап активації не вдався з причиною?

Відповіді:


9

Для тестування ви можете використовувати систему журналів (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);
}

Щоб вивести помилку користувачеві без помилки "Надіслані заголовки", ви можете скористатися функцією php_provector_error:

trigger_error('PLUGIN OK',E_USER_ERROR);

У Wordpress завжди має бути E_USER_ERROR, інакше повідомлення не відображатиметься.

Я знаю, що error_log відмінно працює, оскільки я його використовую, але тригер__помилка відображає необхідну інформацію. Спробуйте і переконайтеся в собі :)


Чи знаєте ви, де я можу знайти подальшу документацію щодо функції error_log? Мені важко зрозуміти, як змусити це працювати.
Натан Артур

Для тих, хто може прийти після: php.net/manual/en/function.error-log.php
Натан Артур

4

РІШЕННЯ:

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

вставте цей код у плагін і після помилки перегляньте "my_loggg.txt" всередині вашої папки плагінів.


Це працювало для мене, але мені довелося помістити його внизу файлу! В іншому випадку він не захопив вихід.
Бен Огорек

0

1) Будь ласка, видаліть зайві інтервали на внутрішніх сторінках або сторінках плагінів.

2) видаліть вбудований стиль на сторінках або сторінках плагінів.

це працювало для мене кожен раз. я багато разів використовував один і той же метод. коли помилка проблеми на сторінці плагіна або Wordpress.

З повагою,

Хітеш Нагпал

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.