Jak wyświetlić komunikat podczas aktywacji wtyczki

10

Rozwijam wtyczkę, ale podczas frazy aktywacyjnej ciągle napotykam błędy. Jednak nie ma łatwego sposobu wyświetlania komunikatów o błędach, ponieważ echo rzeczy spowodowałoby błąd „nieoczekiwanego wyjścia”. Próbowałem haka admin_message, ale to nie działa. Jak mogę ostrzec użytkownika, jeśli jakiś etap aktywacji zakończył się niepowodzeniem bez podania przyczyny?

lulalala
źródło

Odpowiedzi:

9

Do celów testowych możesz użyć systemu logów (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);
}

Aby wyświetlić błąd użytkownikowi bez błędu „Nagłówki już wysłane”, możesz użyć funkcji php trigger_error:

trigger_error('PLUGIN OK',E_USER_ERROR);

W Wordpress zawsze musi być E_USER_ERROR, inaczej nie wyświetli wiadomości.

Wiem, że error_log działa idealnie, ponieważ go używam, ale trigger_error wyświetla informację o konieczności. Wypróbuj i przekonaj się sam :)

Domingos Freitas
źródło
Czy wiesz, gdzie mogę znaleźć dodatkową dokumentację dotyczącą funkcji error_log? Mam problem z ustaleniem, jak to zrobić.
Nathan Arthur
Dla tych, którzy mogą przyjść po: php.net/manual/en/function.error-log.php
Nathan Arthur
4

ROZWIĄZANIE:

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

wstaw ten kod do wtyczki, a po błędzie zobacz „my_loggg.txt” w folderze wtyczek.

T.Todua
źródło
To działało dla mnie, ale musiałem umieścić go na dole pliku! W przeciwnym razie nie przechwyciłby danych wyjściowych.
Ben Ogorek
0

1) Usuń dodatkowe odstępy na wewnętrznych stronach lub stronach wtyczek.

2) usuń wbudowane style ze stron lub stron wtyczek.

to działało dla mnie za każdym razem. Użyłem wiele razy tej samej metody. gdy błąd występuje na stronie wtyczki lub stronie Wordpress.

Pozdrowienia,

Hitesh Nagpal

hitesh nagpal
źródło