Fresh Mill

Vrátit zpět

Jak skrýt plugin WordPress ze seznamu pluginů

Sdílet článek

Často pracujeme na projektech, kde vyvíjíme vlastní pluginy nebo používáme takové moduly, kde nechceme aby je uživatel svých webových stránek viděl. Důvodů je několik. Za prvé v administraci plugin nemá co dělat a za druhé některým vlastníkům webových stránek to jednoduše nedá a musí se do nastavení pluginu podívat a prozkoumat jej. Z naší zkušeností se najdou i takový odborníci, kteří i přes naše doporučení plugin deaktivují a tím dojde k problémům se zobrazením webových stránek.

V tomto článku bychom vám rádi ukázali dva návody. Prvním je možnost skrytí pluginu ze seznamu pluginů s tím, že plugin bude nadále fungovat a v druhém bodě jak zabránit uživatelům v deaktivaci pluginu.

1. Jak skrýt plugin z adresáře pluginů

Přidejte tento kód do souboru functions.php.

//** VYTVORILO STUDIO FRESH MILL - SKRYT PLUGIN */
function hide_plugin_freshmill() {
  global $wp_list_table;
  $hidearr = array('plugin-directory/nazev-pluginu.php');
  $myplugins = $wp_list_table->items;
  foreach ($myplugins as $key => $val) {
    if (in_array($key,$hidearr)) {
      unset($wp_list_table->items[$key]);
    }
  }
}

add_action('pre_current_active_plugins', 'hide_plugin_freshmill');

Nyní najděte plugin, který chcete skrýt a nahraďte nazev-pluginu.php výše v kódu jménem dotčeného pluginu. A to je celé :).

2. Jak zabránit v deaktivaci pluginů

Tato metoda je jiná než první a plugin uživateli sice ukáže, ale zabrání v deaktivaci pluginu nebo pluginů. Důležité pro zabránění v deaktivaci konkrétních pluginů je opět mít k dispozici soubor function.php, znát fragment konkrétního pluginu a vědět, kde jej hledat.

Připojte se ke svému FTP účtu přes mailového klienta jako je například Total Commander nebo File Zila. Najděte složku Plugins a uvnitř každé složky najdete také název souboru, který je obvykle pojmenován podle složky pluginu a končí .php.

Dále pak už jen stačí přidat do souboru functions.php tento kód.

//** VYTVORILO STUDIO FRESH MILL - ZABRANIME DEAKTIVACI PLUGINU */
add_filter( 'plugin_action_links', 'disable_plugin_deactivation', 10, 4 );
function disable_plugin_deactivation( $actions, $plugin_file, $plugin_data, $context ) {

    if ( array_key_exists( 'deactivate', $actions ) && in_array( $plugin_file, array(
        'advanced-gutenberg/advanced-gutenberg.php',
        'contact-form-7/wp-contact-form-7.php'
    )))
        unset( $actions['deactivate'] );
    return $actions;
}

V naší ukázce kódu máme dva pluginy, kde chceme klientům zabránit v deaktivaci. Je to plugin Advanced Gutenberg a Contact Form 7. Aby výsledek fungoval, musíme do kódu zahrnout i složku ve které se plugin nachází.

Nyní přejděte do administrace a v levém panelu vyhledejte pluginy. Zobrazte si jej a povšimněte si, že u našich vybraných pluginů zmizel odkaz pro deaktivaci.

Tato metoda je výborná v tom, že uživateli ukážeme, že plugin se na webu skutečně nachází, ale nemůže jej deaktivovat. Na druhou stranu ty pluginy, které nejsou tak potřebné pro fungování webu si může uživatel deaktivovat. Pokud hledáte programování na míru pro svůj web nebo potřebujete napsat nějakou funkci, neváhejte nás kontaktovat na e-mailovou adresu info@freshmill.cz nebo nám napsat přes náš kontaktní formulář.

Zaujali jsme vás?

Začněme ještě dnes!

Kontaktujte nás