WooCommerce Müşterileri veya Kullanıcı Rolleri Tarafından Yönetici Çubuğu Nasıl Gizlenir

Yayınlanan: 2020-02-23

Yönetici Çubuğunu Rollere Göre Gizle WordPress panosuna erişimi önlemek için WooCommerce'deki yönetici çubuğunu abonelerden, müşterilerden ve yönetici olmayan kullanıcılardan gizlemek önemlidir. Bu eğitimde vurgulandığı gibi WordPress yönetici çubuğunu gizlemenin yolları vardır – WordPress'te yönetici çubuğunun nasıl gizleneceği. Bu aynı teknikler bir WooCommerce sitesinde kullanılabilir, ancak her durum için bazı koşullar vardır.

WooCommerce Müşteriler veya Aboneler için Yönetici Çubuğunu Gizle

WooCommerce Yönetici Seçeneği için Yönetici Çubuğunu Gizle

Yönetici çubuğunu gizlemek için, muhtemelen WooCommerce için de yardımcı olabilecek ve çalışacak bazı eklentiler vardır.

Bir eklenti kullanmadan önce WordPress yönetici panelindeki bu hızlı seçeneği denemelisiniz. Bu seçenek WooCommerce siteleri için de iyi çalışır, hiçbir fark yoktur.

Yönetici kullanıcı profili ayarlarına gidin ve siteyi görüntülerken yöneticiler için yönetici çubuğunu gizlemek için bu seçeneği kontrol edin. WooCommerce Müşteriler veya Aboneler için Yönetici Çubuğunu Gizle

Bu seçeneğin işaretini kaldırın ve ayarları kaydedin, ardından yönetici çubuğunun gizlenip gizlenmediğini görmek için ön ucu ziyaret edin. Aşağıdaki resimde görebileceğiniz gibi, siteyi görüntülerken yönetici kullanıcı için yönetici çubuğu gizlenecektir.

WooCommerce Müşteriler veya Aboneler için Yönetici Çubuğunu Gizle

Bu, oturum açmadığınızda sitenizin nasıl göründüğüne dair bir fikir edinmenin önemli bir yoludur.

Ayrıca, başlığın görüntülenmesiyle ilgili bazı WooCommerce tema sorunlarının hatalarını ayıklamaya çalıştığınızda da yardımcı olur.

WooCommerce Yönetici Barkod Seçeneğini Gizle

Aynısını WooCommerce müşterileri ve aboneleri için uygulamak için, yönetici çubuğunu gizlediğimize false döndürmek için 'show_admin_bar' filtresini kullanmamız gerekiyor.

Bu kancayı kullanmanın çeşitli yolları vardır ve aynı adla aynı işlevi gören bir işlev de vardır.

show_admin_bar( bool $show ) işlevi Boolean (True veya False) olan bir parametre alır ve aşağıdaki gibi kullanılabilir:

 show_admin_bar(yanlış);

Bu kod temanızın function.php dosyasına eklendiğinde yönetici çubuğunu gizleyecektir. Yüklü WooCommerce vitrin temasıyla test ettim ve mükemmel çalışıyor, yönetici çubuğunu gizliyor.

WooCommerce Müşteriler veya Aboneler için Yönetici Çubuğunu Gizle

Bu işlevi daha da iyileştirebilir ve müşterinin görmemesi gerekirken yöneticinin yönetici çubuğunu görüntülemesine izin verdiğiniz bir koşullu test ekleyebilirsiniz.

Bu durumda, müşteri rolüyle veya sitenizdeki yönetici çubuğunu gizlemek istediğiniz başka bir rolle koşullu olarak test edersiniz.

WordPress sitenizde bulunan rolleri Yeni Kullanıcı Ekle'den alabilirsiniz ve son seçenek Roller açılır menüsüne sahiptir:

wordpress kullanıcı rolleri

Mevcut kullanıcı rolünü almak için, WordPress'te mevcut rolün nasıl alınacağına dair bir eğitim yazdım ve bu durumda müşteri kullanıcı rolünü almak ve show_admin_bar() işlevini false olarak ayarlamak için kullanabilirsiniz.

Bu durumda, mevcut kullanıcı rolünü almak ve kullanıcı rolünün bir müşteri olup olmadığını koşullu olarak kontrol etmek için kullanabileceğiniz kod aşağıdadır.

WordPress'te mevcut kullanıcı rolünün nasıl alınacağına dair öğreticide paylaştığım bu kod ve bu durumda onu yeniden kullanabiliriz:

 add_action('wp_head', 'njengah_get_current_user_role');

function njengah_get_current_user_role() {

  if( is_user_logged_in() ) { // oturum açmış bir kullanıcı olup olmadığını kontrol edin

   $user = wp_get_current_user(); // mevcut kullanıcıyı alma ve ayarlama
   $roller = ( dizi ) $kullanıcı->roller; // rolün alınması

   //$rolleri döndür; // mevcut kullanıcı için rolü döndür

     // print_r ile test et
      print('<pre>');
      print_r($roller);
       print('</pre>');

    } Başka {

          diziyi döndür(); // oturum açmış kullanıcı yoksa boş dizi döndür

   }

}

Bu kodu function.php'ye ekleyerek test ettiğinizde, aşağıdaki resimde gösterildiği gibi dizide görüntülenen mevcut kullanıcı rolünü görmelisiniz:

WooCommerce Yönetici Barkod Seçeneğini Gizle

key [0] kullanarak diziden bu kullanıcı rolünü alabiliriz ve kodu biraz değiştirip kullanıcı rolünü yazdırdığımızda, aşağıdaki değiştirilmiş koddaki gibi kullanıcı rolünün yazdırıldığını görmeliyiz:

 add_action('wp_head', 'njengah_get_current_user_role_print');

function njengah_get_current_user_role_print() {

        if( is_user_logged_in() ) { // oturum açmış bir kullanıcı olup olmadığını kontrol edin

          $user = wp_get_current_user(); // mevcut kullanıcıyı alma ve ayarlama

          $roller = ( dizi ) $kullanıcı->roller; // rolün alınması

            echo $roller[0];

              } Başka {

              diziyi döndür(); // oturum açmış kullanıcı yoksa boş dizi döndür

       }

}

Kullanıcı rolünü başarıyla elde ettiğimize göre, artık herhangi bir rol olabilen belirli bir kullanıcı rolü için yönetici çubuğunu gizlemek için show_admin_bar() işlevinde koşullu olarak kullanabiliriz.

Örnek olarak, şimdi aşağıdaki kodu kullanarak yönetici rolü için yönetici çubuğunu gizleriz:

 add_action('wp_head', 'njengah_hide_admin_bar_for_administrator');

function njengah_hide_admin_bar_for_administrator() {

     if( is_user_logged_in() ) { // oturum açmış bir kullanıcı olup olmadığını kontrol edin

       $user = wp_get_current_user(); // mevcut kullanıcıyı alma ve ayarlama

         $roller = ( dizi ) $kullanıcı->roller; // rolün alınması

          if( $roller[0] == 'yönetici'){ //buradan rolü kontrol edin. Bunu diğer kullanıcı rolleriyle değiştirebilirsiniz. Örnek 'müşteri' editörü vb.

           echo $roller[0]; // demo amacıyla rolü ekrana yazdırın (üretimde kaldırılmalıdır)

           show_admin_bar(yanlış); // bu koşul için rolü gizle

     }

        } Başka {

           diziyi döndür(); // oturum açmış kullanıcı yoksa boş dizi döndür

     }

}

Bu kodu function.php dosyasına eklediğinizde, daha önce olduğu gibi ekranda yönetici rolünün görüntülendiğini ve admin çubuğunun koşullu olarak gizlendiğini göreceksiniz.

Bu yönetici rolünü müşteri ile değiştirebilir ve ayrıca aşağıdaki gibi duruma birkaç koşullu test ekleyebilirsiniz:

 add_action('wp_head', 'njengah_hide_admin_bar_for_customer');

function njengah_hide_admin_bar_for_administrator() {

if( is_user_logged_in() ) { // oturum açmış bir kullanıcı olup olmadığını kontrol edin

              $user = wp_get_current_user(); // mevcut kullanıcıyı alma ve ayarlama

                $roller = ( dizi ) $kullanıcı->roller; // rolün alınması

                    if( $roller[0] == 'müşteri'){ //buradaki rolü kontrol edin. Bunu diğer kullanıcı rolleriyle değiştirebilirsiniz. Örnek 'müşteri' editörü vb.

                echo $roller[0]; // demo amacıyla rolü ekrana yazdırın (üretimde kaldırılmalıdır)

                      show_admin_bar(yanlış); // bu koşul için rolü gizle

        }

        } Başka {

                diziyi döndür(); // oturum açmış kullanıcı yoksa boş dizi döndür

      }

}

Yönetici durumunda olduğu gibi, test ettiğinizde, müşteri olarak görüntülenen rolün adını ve yönetici çubuğunun gizlendiğini görmelisiniz.

Mevcut Kullanıcı Yeteneklerine Göre Yönetici Çubuğunu Gizle

Yönetici çubuğunu admin bekleyen tüm kullanıcılardan gizlemenin alternatif bir yolu, function.php dosyasına aşağıdaki kodu ekleyebilirsiniz:

 if ( ! current_user_can( 'manage_options' ) ) {

   show_admin_bar(yanlış);

}

Bu kod current_user_can() koşullu testini kullanır ve bunu bir müşteri için olduğu gibi farklı ayrıcalıklara göre düzenleyebilirsiniz, şöyle olmalıdır:

 if ( ! current_user_can( 'oku' ) ) {

   show_admin_bar(yanlış);

}

Bu, WordPress'te bir abonenin rolüne eşdeğerdir. WooCommerce iki rol oluşturur - Müşteri ve Mağaza Yöneticisi. Müşteri, aboneye eşdeğerdir, dolayısıyla bu durumda bir abonenin yetenekleri ' okunur '.

WordPress kullanıcılarının tüm yeteneklerini Roller & Capabilities dokümantasyonundan inceleyebilirsiniz. WooCommerce rolleri ve yetenekleri dokümanlarından WooCommerce rolleri hakkında daha fazla bilgi edinebilirsiniz.

WooCommerce'de Yönetici Çubuğunu Gizlemek için Kodun Uygulanması

Yukarıdaki kodda, WooCommerce'de yönetici çubuğunu gizlemek için her şeyin nasıl çalıştığını ayrıntılı olarak açıkladık.

Test amacıyla ama üretimde 'wp_head' eklenen bir add_action() kullandığımı fark ettiyseniz, eylem kancası yerine bir filtre kullanmamız gerekiyor.

Bu durumda, filtre 'show_admin_bar' ve kod aşağıdaki gibi olmalıdır:

 add_filter( 'show_admin_bar', 'njengah_hide_admin_bar_for_customers', 20, 1 );

function njengah_hide_admin_bar_for_customers($göster){

           $user = wp_get_current_user(); // mevcut kullanıcıyı alma ve ayarlama

            $roller = ( dizi ) $kullanıcı->roller; // rolün alınması

               if( $roles[0] == 'yönetici'){ // Dizi anahtarlarına [0] [1] ve ilgili değerlere göre burada kullanıcı rollerini test edin

                       $göster = yanlış;

                              $göster dön;

               }

}

Yönetici çubuğunu gizlemek için her rolün yeteneklerini de kullanabilirsiniz ve filtre aşağıdaki gibi olacaktır:

 /**

* Yöneticiden beklenen diğer roller için Yönetici çubuğunu gizle

*/

add_filter( 'show_admin_bar', 'njengah_hide_admin_bar_others_expect_admin', 20, 1 );

function njengah_hide_admin_bar_others_expect_admin( $göster ) {

    if ( ! current_user_can( 'yönetici' ) ) $show = false;

     $göster dön;

    }

Yönetici çubuğunu yöneticilerden beklediğiniz diğer rollerden gizlemek için bu kodu function.php'ye ekleyin.

Son düşünceler

Çeşitli yaklaşımları kullanarak WordPress veya WooCommerce'de yönetici çubuğunu nasıl gizleyebileceğinizi özetledik. Bu yöntemlerden herhangi birini seçebilir ve kodu function.php'nize ekleyebilirsiniz. Ayrıca, yönetici çubuğunu bir WordPress özel kullanıcı rolünden gizlemek gibi farklı senaryolara uygun hale getirmek için kodu daha da değiştirebilirsiniz.