Apakah ada tag kondisional yang akan memungkinkan saya untuk menampilkan konten tertentu hanya jika pengguna BUKAN pelanggan?
sumber
Apakah ada tag kondisional yang akan memungkinkan saya untuk menampilkan konten tertentu hanya jika pengguna BUKAN pelanggan?
<?php
global $current_user; // Use global
get_currentuserinfo(); // Make sure global is set, if not set it.
if ( ! user_can( $current_user, "subscriber" ) ) // Check user object has not got subscriber role
echo 'User is a not Subscriber';
else
echo 'User is a Subscriber';
?>
Cara yang bahkan lebih sederhana, daripada yang ditunjukkan @Brady adalah penggunaannya current_user_can
:
if ( current_user_can( 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again!";
Ada juga yang setara untuk instalasi MU, bernama current_user_can_for_blog
:
global $blog_id;
if ( current_user_can_for_blog( $blog_id 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again on this blog!";
Ketika melihat sumber fungsi untuk instalasi tunggal atau MU , maka Anda akan melihat, bahwa keduanya pada dasarnya bergantung wp_get_current_user()
dan kemudian melakukan pemeriksaan has_cap
. Sekarang jika Anda ingin melihat, dari mana asal topi, maka WP_User
kelas / objek masuk ke dalam permainan.
Lalu ada juga author_can( $GLOBALS['post'], 'capability' );
. Semua fungsi tersebut berada di dalam ~/wp-includes/capabilities
tepat di bawah satu sama lain.
Sekarang, di mana perbedaan antara current_user_can(_FOR_BLOG)
dan user_can
?
user_can()
adalah yang lebih baru (sejak 3.1), tetapi membutuhkan pengguna sebagai objek. Jadi Anda dapat menggunakannya dalam kasus, di mana Anda tidak ingin menargetkan pengguna saat ini, tetapi beberapa pengguna.current_user_can_*()
sudah jelas.author_can()
memungkinkan Anda untuk memeriksa kemampuan terhadap objek posting. Objek ini hanya tersedia untuk posting, yang sudah ada dalam DB. Jadi itu terutama untuk mengizinkan / menolak akses ke fitur posting tertentu.
current_user_can()
halaman codex, AFAIK tidak berubah.Apakah ini yang Anda maksud?
Rincian lebih lanjut tentang ID untuk tingkat yang berbeda: http://codex.wordpress.org/Roles_and_Capabilities#User_Levels
Ada juga fungsi current_user_can (), yang memungkinkan Anda menunjukkan kemampuan khusus untuk lebih banyak fleksibilitas. http://codex.wordpress.org/Function_Reference/current_user_can
sumber
To maintain backwards compatibility with plugins that still use the user levels system (although this is very much discouraged), the default Roles in WordPress also include Capabilities that correspond to these levels. User Levels were finally deprecated in version 3.0.