Jak ukryć informację o aktualizacji WP dla zalogowanych użytkowników?

  • Poziom trudności:

Pomogłem rozwiązać Twój problem? Wspieraj moje działania bym pisał więcej:

WordPress kilka razy w roku wydaje większe aktualizacje, o których zostają poinformowani zarówno administratorzy logujący się do Kokpitu, jak również pozostali użytkownicy posiadający dostęp do panelu. Nie zachęcam do wyłączania tych aktualizacji, bowiem jest szczególnie ważne żeby o nich wiedzieć i łatać swoje strony możliwie jak najszybciej. Jednak równie istotne jak szybkie aktualizowanie jest natychmiastowe ukrycie informacji o konieczności aktualizacji dla wszystkich osób, którzy tego przypomnienia nie muszą widzieć.

Wyobraź sobie hipotetyczną sytuację. Posiadasz stronę pozwalającą na rejestrowanie nowych użytkowników. Z drugiej strony dbasz o to, by użytkownicy za wiele na stronie po zalogowaniu nie widzieli. Tymczasem kiedy zalogowałeś się na takiego testowego użytkownika chwilę po tym jak wyszła nowa aktualizacja twoim oczom ukazała się znajoma informacja:

Całe szczęście nikt za wyjątkiem administratora nie może podjąć się aktualizacji, jednak informowanie swoich użytkowników o nieaktualnej wersji – szczególnie jeśli ta poprzednia zawierała lukę bezpieczeństwa – nie jest zbyt rozsądne.

Dlatego właśnie chciałbym Ci zaproponować szybkie, nieobciążające WordPressa rozwiązanie, za którego pomocą będziesz mógł ukryć informację o aktualizacji dla wszystkich, którzy nie posiadają konta Administratora. Od tej pory każdy Subskrybent, Współpracownik, Autor czy Redaktor otwierając Kokpit nie będzie widział komunikatu o aktualizacji.

Z tego wpisu dowiesz się:

  • jak ukryć informację o konieczności aktualizacji WP
  • w jaki sposób ukryć zakładki w Kokpicie (z lewej strony) do których zalogowani nie powinni mieć dostępu
  • jakie wtyczki odpowiadają za podobne działania i m.in. sposób na przekierowanie użytkownika logującego się do Kokpitu

Aby w ten sposób zabezpieczyć swoją witrynę wystarczy, że umieścisz poniższy fragment kodu w pliku functions.php:

<pre id="fvch-code-0" class="">function ukryj_informacje_o_aktualizacji_wp_dla_wszystkich_oprocz_admina()
{
    if (!current_user_can('update_core')) {
        remove_action( 'admin_notices', 'update_nag', 3 );
        remove_action( 'admin_notices', 'maintenance_nag', 10 );
    }
}
add_action( 'admin_head', 'ukryj_informacje_o_aktualizacji_wp_dla_wszystkich_oprocz_admina', 1 );</pre>

A skoro już robimy porządki

Jeśli udało Ci się ukryć informację o aktualizacji dla użytkowników to może pójdziemy krok dalej i ukryjemy wspólnie zakładki w panelu, do których użytkownicy nie mają dostępu, a mimo to je widzą?

Podobnie jak poprzednio w pliku functions.php umieść:

<pre class="lang:php decode:true">function usun_pozycje_w_menu_administratora() {
	$usun_pozycje_w_menu = array(__('Profil'));
	global $menu;
	end ($menu);
	while (prev($menu)){
		$item = explode(' ',$menu[key($menu)][0]);
		if(in_array($item[0] != NULL?$item[0]:"" , $usun_pozycje_w_menu)){
		unset($menu[key($menu)]);}
	}
}

add_action('admin_menu', 'usun_pozycje_w_menu_administratora');</pre>

W drugiej linii powinieneś wpisać pozycje, która jest do usunięcia. Jeśli masz kilka pozycji, które chcesz usunąć, wtedy drugą linię zastąp:

<pre class="lang:php decode:true ">$remove_menu_items = array(__('Pozycja1'),__('Pozycja2'),__('Pozycja3'));</pre>

a następnie wprowadź pozycje, które zamierzasz usunąć.

Ponieważ to rozwiązanie nie sprawdza się we wszystkich przypadkach, dlatego polecam użyć w ostateczności wtyczki, która zrobi to samo:

Admin Menu Editor – oprócz ukrywania niechcianych pozycji pozwala na edycję menu admina, zmianę kolejności, ukrywanie dowolnych pozycji, zmianę nazwy, a także dodawanie własnych pozycji w menu.

AG Custom Admin – ukrywa niechciane pozycje z menu admina, pozwala na ukrycie górnego paska ale także na dodanie własnych pozycji, zmianę kolorystyczną czy obrandowanie panelu logowania. Najciekawsza z wszystkich wtyczek, dająca wiele możliwości i niezawodna.

Remove Dashboard Access – pomaga w ukryciu wyłącznie podstrony z Kokpitem lub przekierowaniu użytkownika usiłującego wejść do Kokpitu w inne miejsce.

UDOSTĘPNIJ

Pomogłem rozwiązać Twój problem? Wspieraj moje działania bym pisał więcej: