Cara Menyembunyikan Bilah Admin untuk Pelanggan WooCommerce atau Berdasarkan Peran Pengguna
Diterbitkan: 2020-02-23Penting untuk menyembunyikan bilah admin di WooCommerce dari pelanggan, pelanggan, dan pengguna non-admin untuk menghindari akses ke dasbor WordPress. Ada cara menyembunyikan bilah admin WordPress seperti yang disorot dalam tutorial ini – cara menyembunyikan bilah admin di WordPress. Teknik yang sama ini dapat digunakan di situs WooCommerce tetapi dengan beberapa kondisi untuk setiap kasus.
Sembunyikan Bilah Admin untuk Opsi Admin WooCommerce
Untuk menyembunyikan bilah admin untuk administrator, mungkin ada beberapa plugin yang juga dapat membantu dan akan berfungsi untuk WooCommerce juga.
Sebelum Anda menggunakan plugin, Anda harus terlebih dahulu mencoba opsi cepat ini di dasbor admin WordPress. Opsi ini juga berfungsi dengan baik untuk situs WooCommerce, tidak ada perbedaan.
Buka pengaturan profil pengguna administrator dan periksa opsi ini untuk menyembunyikan bilah admin untuk admin saat melihat situs.
Hapus centang opsi ini dan simpan pengaturan lalu kunjungi frontend untuk melihat apakah bilah admin telah disembunyikan. Seperti yang Anda lihat pada gambar di bawah, bilah admin akan disembunyikan untuk pengguna admin saat melihat situs.
Ini adalah cara penting untuk melihat sekilas tampilan situs Anda saat Anda tidak masuk.
Ini juga membantu ketika Anda mencoba men-debug beberapa masalah tema WooCommerce yang berhubungan dengan tampilan header.
WooCommerce Sembunyikan Opsi Kode Batang Admin
Untuk menerapkan hal yang sama untuk pelanggan dan pelanggan WooCommerce, kita perlu menggunakan filter 'show_admin_bar'
untuk mengembalikan false sehingga kita menyembunyikan bilah admin.
Ada berbagai cara Anda dapat menggunakan kait ini dan ada juga fungsi dengan nama yang sama yang bekerja sama.
Fungsi show_admin_bar( bool $show )
mengambil satu parameter yaitu Boolean
( True atau False ) dan dapat digunakan sebagai berikut :
show_admin_bar(salah);
Kode ini, ketika ditambahkan ke file functions.php dari tema Anda, akan menyembunyikan bilah admin. Saya telah mengujinya dengan tema etalase WooCommerce yang diinstal dan berfungsi dengan baik menyembunyikan bilah admin.
Anda dapat meningkatkan fungsi ini lebih lanjut dan menambahkan tes bersyarat di mana Anda mengizinkan admin untuk melihat bilah admin sementara pelanggan tidak boleh melihatnya.
Dalam hal ini, Anda akan menguji secara kondisional dengan peran pelanggan atau peran lain apa pun di situs Anda yang ingin Anda sembunyikan bilah adminnya.
Anda bisa mendapatkan peran yang tersedia di situs WordPress Anda dari Tambahkan Pengguna Baru dan opsi terakhir memiliki drop-down Peran:
Untuk mendapatkan peran pengguna saat ini, saya menulis tutorial tentang cara mendapatkan peran saat ini di WordPress dan Anda dapat menggunakannya dalam kasus ini untuk mendapatkan peran pengguna pelanggan dan mengatur fungsi show_admin_bar()
ke false.
Dalam hal ini, berikut ini adalah kode yang dapat Anda gunakan untuk mendapatkan peran pengguna saat ini dan secara kondisional memeriksa apakah peran pengguna adalah pelanggan.
Kode ini saya bagikan dalam tutorial tentang cara mendapatkan peran pengguna saat ini di WordPress dan kami dapat menggunakannya kembali dalam kasus ini:
add_action( 'wp_head', 'njengah_get_current_user_role'); fungsi njengah_get_current_user_role() { if( is_user_logged_in() ) { // periksa apakah ada pengguna yang login $pengguna = wp_get_current_user(); // mendapatkan & menyetel pengguna saat ini $roles = ( array ) $user->roles; // mendapatkan peran //mengembalikan $peran; // mengembalikan peran untuk pengguna saat ini // Uji dengan print_r print('<pra>'); print_r( $peran); print('</pre>'); } kalau tidak { kembali array(); // jika tidak ada pengguna yang login, kembalikan array kosong } }
Saat Anda menguji kode ini dengan menambahkan ke functions.php, Anda akan melihat peran pengguna saat ini ditampilkan dalam array seperti yang ditunjukkan pada gambar di bawah ini:
Kita bisa mendapatkan peran pengguna ini dari array menggunakan key [0]
dan ketika kita memodifikasi kode sedikit dan mencetak peran pengguna, kita akan melihat peran pengguna dicetak seperti pada kode modifikasi berikut:
add_action( 'wp_head', 'njengah_get_current_user_role_print'); fungsi njengah_get_current_user_role_print() { if( is_user_logged_in() ) { // periksa apakah ada pengguna yang login $pengguna = wp_get_current_user(); // mendapatkan & menyetel pengguna saat ini $roles = ( array ) $user->roles; // mendapatkan peran echo $peran[0]; } kalau tidak { kembali array(); // jika tidak ada pengguna yang login, kembalikan array kosong } }
Karena kami telah berhasil memperoleh peran pengguna, kami sekarang dapat menggunakannya dalam fungsi show_admin_bar()
secara kondisional untuk menyembunyikan bilah admin untuk peran pengguna tertentu yang dapat berupa peran apa pun.
Sebagai ilustrasi, sekarang kami menyembunyikan bilah admin untuk peran administrator menggunakan kode di bawah ini:
add_action( 'wp_head', 'njengah_hide_admin_bar_for_administrator'); function njengah_hide_admin_bar_for_administrator() { if( is_user_logged_in() ) { // periksa apakah ada pengguna yang login $pengguna = wp_get_current_user(); // mendapatkan & menyetel pengguna saat ini $roles = ( array ) $user->roles; // mendapatkan peran if( $roles[0] == 'administrator'){ //periksa peran di sini. Anda dapat menggantinya dengan peran pengguna lain. Contoh editor 'pelanggan' dll echo $peran[0]; //mencetak peran ke layar untuk tujuan demo (harus dihapus dalam produksi) show_admin_bar(salah); // sembunyikan peran untuk kondisi ini } } kalau tidak { kembali array(); // jika tidak ada pengguna yang login, kembalikan array kosong } }
Ketika Anda menambahkan kode ini ke file functions.php, Anda akan melihat peran administrator ditampilkan di layar seperti sebelumnya dan bilah admin telah disembunyikan secara kondisional.
Anda dapat mengganti peran administrator ini dengan pelanggan dan Anda juga dapat menambahkan beberapa pengujian kondisional dalam kondisi sebagai berikut:
add_action( 'wp_head', 'njengah_hide_admin_bar_for_customer'); function njengah_hide_admin_bar_for_administrator() { if( is_user_logged_in() ) { // periksa apakah ada pengguna yang login $pengguna = wp_get_current_user(); // mendapatkan & menyetel pengguna saat ini $roles = ( array ) $user->roles; // mendapatkan peran if( $roles[0] == 'customer'){ //periksa peran di sini. Anda dapat menggantinya dengan peran pengguna lain. Contoh editor 'pelanggan' dll echo $peran[0]; //mencetak peran ke layar untuk tujuan demo (harus dihapus dalam produksi) show_admin_bar(salah); // sembunyikan peran untuk kondisi ini } } kalau tidak { kembali array(); // jika tidak ada pengguna yang login, kembalikan array kosong } }
Seperti dalam kasus administrator saat Anda menguji, Anda akan melihat nama peran yang ditampilkan sebagai pelanggan dan bilah admin disembunyikan.
Sembunyikan Bilah Admin berdasarkan Kemampuan Pengguna Saat Ini
Cara alternatif untuk menyembunyikan bilah admin dari semua pengguna mengharapkan admin Anda dapat menambahkan kode berikut ke functions.php :
if ( ! current_user_can( 'manage_options' ) ) { show_admin_bar(salah); }
Kode ini menggunakan pengujian kondisi current_user_can()
dan Anda dapat mengeditnya ke hak istimewa yang berbeda seperti untuk pelanggan seharusnya sebagai berikut:
if ( ! current_user_can( 'membaca' ) ) { show_admin_bar(salah); }
Ini setara dengan peran pelanggan di WordPress. WooCommerce menciptakan dua peran – Pelanggan dan Manajer Toko. Pelanggan setara dengan pelanggan sehingga dalam hal ini, kemampuan pelanggan ' membaca '.
Anda dapat melihat semua kemampuan pengguna WordPress dari – Dokumentasi Peran & Kemampuan. Anda dapat mempelajari lebih lanjut tentang peran WooCommerce dari dokumen peran & kemampuan WooCommerce.
Menerapkan Kode untuk Menyembunyikan Bilah Admin di WooCommerce
Pada kode di atas, kami telah menjelaskan secara rinci bagaimana semuanya bekerja untuk menyembunyikan bilah admin di WooCommerce.
Jika Anda perhatikan saya menggunakan add_action()
yang dilampirkan ke 'wp_head'
untuk tujuan pengujian tetapi dalam produksi, kita perlu menggunakan filter alih-alih kait tindakan.
Dalam hal ini, filter harus terhubung ke 'show_admin_bar'
dan kodenya harus sebagai berikut:
add_filter( 'show_admin_bar', 'njengah_hide_admin_bar_for_customers', 20, 1 ); fungsi njengah_hide_admin_bar_for_customers($show){ $pengguna = wp_get_current_user(); // mendapatkan & menyetel pengguna saat ini $roles = ( array ) $user->roles; // mendapatkan peran if( $roles[0] == 'administator'){ // Uji peran pengguna di sini berdasarkan kunci array [0] [1] dan nilai masing-masing $tampilkan = salah; kembali $tampilkan; } }
Anda juga dapat menggunakan kemampuan setiap peran untuk menyembunyikan bilah admin dan filternya adalah sebagai berikut:
/** * Sembunyikan bilah Admin untuk peran lain mengharapkan admin */ add_filter( 'show_admin_bar', 'njengah_hide_admin_bar_others_expect_admin', 20, 1 ); function njengah_hide_admin_bar_others_expect_admin( $show ) { if ( ! current_user_can( 'administrator' ) ) $show = false; kembali $tampilkan; }
Tambahkan kode ini ke functions.php untuk menyembunyikan bilah admin dari peran lain yang diharapkan administrator.
Pikiran Akhir
Kami telah menguraikan bagaimana Anda dapat menyembunyikan bilah admin di WordPress atau WooCommerce menggunakan berbagai pendekatan. Anda dapat memilih salah satu dari metode ini dan menambahkan kode ke functions.php Anda. Anda juga dapat memodifikasi kode lebih lanjut agar cocok untuk berbagai skenario seperti menyembunyikan bilah admin dari peran pengguna kustom WordPress.