Jak dodać powiadomienia administratora i komunikaty o błędach do WordPress

Powiadomienia Administratora są integralną częścią wtyczek, umożliwiają wyświetlanie użytkownikom komunikatów o błędach/sukcesach / ostrzeżeniach, zachęcając ich do działania lub po prostu powiadamiając o czymś, co się stało.

W tym artykule przyjrzymy się standardowemu sposobowi dodawania powiadomień administratora i niektórym dodatkowym opcjom wprowadzonym w WordPress 4.2, w tym sposobowi odrzucania powiadomień.

Czytaj dalej, lub Skocz do przodu, korzystając z tych linków:

Co To jest powiadomienie administratora?

Powiadomienie administratora to blok powiadomień składający się z białego tła, kolorowego lewego obramowania i tekstu. Istnieją trzy rodzaje: zielony, pomarańczowy i czerwony. Biorąc pod uwagę nazwy klas, powinny one być używane odpowiednio do powiadomień o aktualizacji, monitów o aktualizacji i błędów. Mając to na uwadze, zielone są często używane do ogólnych komunikatów o sukcesie, co moim zdaniem jest w porządku.

Admin notices at the top of the WordPress backend
Powiadomienia administratora na górze zaplecza WordPress

Zwróć uwagę, że monity o aktualizację – lub Aktualizuj nagi – pojawiają się u góry ekranu, podczas gdy pozostałe dwa typy są wyświetlane pod tytułem strony.

Anatomia admina

Każde ogłoszenie jest zasadniczo div z klasą ogłoszenia, oprócz innej konkretnej. Zielone powiadomienia używają zaktualizowanej klasy, czerwone powiadomienia używają klasy błędu, update nags używają klasy update-nag. W tej klasie możesz dodać dowolną treść, pojedynczy wiersz tekstu otoczony znacznikiem akapitu jest zwykłym wyborem. HTML dla uwag na powyższym zrzucie ekranu wygląda następująco:

Dodawanie ogłoszeń do strony

Akcja jest używana do dodawania wiadomości aktualizacji. Jest to idealne rozwiązanie, ponieważ autorzy wtyczek mogą nadpisać domyślne zachowania. W niektórych przypadkach możesz chcieć stłumić niektóre wiadomości-akcje dają Ci taką możliwość. Hook do użycia to admin_notices, hookowana funkcja powinna po prostu echo wymaganego HTML, coś w tym stylu:

Jeśli potrzebujesz dodać dwa powiadomienia na raz, sugeruję użycie dwóch oddzielnych hooków zamiast pisania HTML dla obu w tej samej funkcji. Pozwala to tobie lub innym autorom wtyczek tłumić tylko jedną wiadomość. Ten rodzaj elastyczności jest podstawą modułowości WordPressa, jako autorzy wtyczek naszym zadaniem jest utrzymanie tego standardu.

Jeśli nie jesteś zaznajomiony z funkcją _e (), jest ona używana do celów translacji. Jest to część rodziny funkcji, których możesz użyć, aby udostępnić wtyczkę w wielu językach. Jeśli chcesz uzyskać więcej informacji na ten temat, zapoznaj się z naszym Przewodnikiem po tłumaczeniu wtyczek

Generowanie Powiadomień Za Pomocą Akcji Użytkownika

Zazwyczaj w kodzie pojawią się pewne stwierdzenia if, ponieważ powiadomienia zależą od konkretnych działań i wyników.

Spójrzmy na wtyczkę, która wyświetla powiadomienie, jeśli wtyczka Advanced Custom Fields nie jest aktywna. Jest to przydatne, jeśli polegamy na nim, lub jeśli to sprawia, że nasz plugin, że znacznie lepiej.

Zawiadomienia O Odwołaniu

WordPress 4.2 dał nam wbudowane powiadomienia. Na front-endzie wszystko, co musisz zrobić, to dać swoim ogłoszeniom klasę is-disclose.

Dismissable WordPress Notice
Wypowiedzenie w WordPress

Minusem jest to, że jak na razie nie ma znormalizowanego sposobu, aby WordPress zapamiętał zwolnienie, z wyjątkiem kilku przypadków. Przeczytaj o tym w aktualizacji core developer Helen Hou-Sandi.

Na razie najlepszą metodą jest powiązanie zdarzenia z kliknięciem i zrobienie wszystkiego, co jest nam potrzebne poprzez AJAX. Proces ten jest następujący:

  1. Powiadomienie zostanie wyświetlone tylko wtedy, gdy użytkownik go nie odrzucił. W związku z tym będziemy mieli opcję my-acf-notice-discharge, która będzie wynosić 1, jeśli użytkownik odrzucił zawiadomienie.
  2. Wykrymy kliknięcie przycisku zwolnienia i odpalimy połączenie AJAX
  3. Wywołanie AJAX zaktualizuje opcję my-acf-notice-dismared do 1
  4. Jeśli chcemy być bardzo dokładni, możemy wykryć obecność funkcji ACF the_field() i usunąć opcję, jeśli istnieje. Zapewni to, że jeśli ACF jest zainstalowany, a następnie odinstalowany, powiadomienie wróci. Wymaga to jednak sprawdzenia funkcji przy każdym ładowaniu strony, co może być nieco marnotrawne.

Zawiadomienie Warunkowe

Pobierzmy opcję my-acf-notice-dismised z bazy danych i utwórzmy powiadomienie, które pojawi się tylko wtedy, gdy wartość opcji nie jest równa 1.

Jest to bardzo podobne do naszego kodu powyżej, z dodaniem pustego czeku dla naszej opcji. Wartość naszej opcji może być równa 0, ale nadal jest ona uważana za pustą, więc wszystko jest ustawione.

Zauważ, że dodałem klasę my-acf-notice do powiadomienia, aby upewnić się, że możemy powiązać Zdarzenie tylko z naszym powiadomieniem.

Wykrywanie Kliknięcia

Zanim napiszemy jakikolwiek Javascript, musimy utworzyć plik JS i go zapytać. Zakładam prosty plugin z plikiem Javascript w folderze js.

W tym pliku JS, musimy utworzyć zdarzenie kliknięcia, związane z. my-acf-notice – to zdarzenie kliknięcia wywoła nasze połączenie AJAX.

Aktualizacja Naszej Opcji

Parametrem akcji naszego wywołania AJAX był my_dismiss_acf_notice, który daje nam szablon do tworzenia kodu, który obsługuje rzeczy po stronie serwera. Wszystko, co jest potrzebne, to szybka aktualizacja opcji my-acf-notice-discelled, ustawiając jej wartość na 1.

Jeśli nie używałeś AJAX w WordPress, zanim mamy poręczny przewodnik po Ajaxie, którego możesz użyć, aby odświeżyć swoje umiejętności.

W tym momencie powinieneś być w stanie załadować swój pulpit nawigacyjny, zobaczyć powiadomienie i go odrzucić, nie pojawi się ponownie w panelu administracyjnym.

Przywracanie zawiadomienia

W tej chwili nasze ogłoszenie nie jest kompletne. Jeśli ACF nie jest zainstalowany, pojawi się. Następnie użytkownik może go odrzucić, ale później zainstalować ACF. Jeśli ACF zostanie dezaktywowany z jakiegokolwiek powodu, powiadomienie pozostanie Ukryte.

Aby to obejść, możemy sprawdzić, czy istnieje funkcja the_field () – znacząca funkcja używana w ACF – a jeśli nie istnieje, usuń tę opcję.

To trochę marnotrawstwo, ale możemy to zrobić za pomocą Hooka admina, który uruchamia się tylko na ekranach admina, co powinno być w porządku.

Powiadomienia o administratorze są użyteczną i modułową częścią środowiska administratora. Można je rejestrować indywidualnie, co pozwala programistom na lepszy dostęp do twojej pracy.

Nowe dodatki w WordPress 4.2 pozwalają na odrzucenie uwag, chociaż musimy trochę popracować, aby były trwałe. Mam nadzieję, że to się zmieni wraz z wdrożeniem frameworka dla lepszego zarządzania powiadomieniami, być może w jednej z następnych wersji.

Jeśli masz świetny niestandardowy sposób tworzenia powiadomień lub korzystałeś z domyślnych metod, daj nam znać w komentarzus poniżej.