Как вывести сообщение при активации плагина


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

trigger_error('PLUGIN OK',E_USER_ERROR);

В Wordpress всегда должно быть E_USER_ERROR, иначе сообщение не будет отображаться.

Я знаю, что error_log работает отлично, так как я использую его, но trigger_error отображает необходимую информацию. Попробуйте и убедитесь сами :)


Вы знаете, где я могу найти дополнительную документацию по функции 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.