ขอบคุณครับ..
ผมมีอีกแบบนึง แบบใส่เข้าไปใน css เลย ต้องใส่ is_user_logged_in() ยังไงครับ
-style.css
.user-role-customer .catalog_top {
display: none;
}
-functions.php
add_filter( 'body_class', function( $classes ){
foreach( (array) wp_get_current_user()->roles as $role ){
$classes[] = "user-role-$role";
}
return $classes;
});
ผมไม่เข้าใจคำถามนะครับ แต่จะตอบถามที่ผมเข้าใจก็แล้วกัน (สรุปเข้าใจหรือไม่เข้าใจเนี้ยะ 555++)
ถ้าให้ใส่คลาสสำหรับสมาชิกที่ยังไม่ได้ล็อกอินนะครับ ตามที่ผมตอบไปข้างบนคือให้เอา is_user_logged_in() มาตรวจสอบสมาชิกก่อนครับเช่น
if ( is_user_logged_in() ) {
// หากสมาชิกล็อคอินอยู่ก็ให้เพิ่มคลาสนี้เข้าไป
$classes[] = 'user-logged';
} else {
// หากสมาชิกไม่ได้ล็อคอิน
$classes[] = 'user-guest';
}
แต่ถ้าจะเอามาใช้เช็คสถานะจริงควรจะเป็นประมาณนี้ ผมอิงจากโค้ดที่ท่านส่งมาเลยนะครับ
add_filter( 'body_class', function( $classes ){
if ( is_user_logged_in() ) {
$classes[] = 'user-logged';
foreach( (array) wp_get_current_user()->roles as $role ){
$classes[] = "user-role-$role";
}
} else {
$classes[] = 'user-guest';
}
return $classes;
});
แล้วนอกนั่นก็ไปเพิ่มคลาส css เอาต่อในไฟล์ styles.css ครับ
// สีพื้นหลังสำหรับสมาชิกที่ไม่ได้ล็อคอิน
body.user-guest {
background: red;
}
// สีพื้นหลัง user-logged
body.user-logged {
background: yellow;
}
// สีพื้นหลัง role author
body.user-role-author {
background: black;
}