How can I restrict a specific logged user (current role is subscriber) via wp_get_current_user() to view only specific pages?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
This code filter the content for custom post types “news”, you say “specific pages” so this can be adjusted to your needs. Then it checks if the user is a subscriber, and shows the content if it is, else, it just says “Not allowed”.
function filter_content($content) {
global $post;
if ( $post->post_type == 'news' ) { //Specify your pages here
$currentuser = wp_get_current_user();
if ( in_array( 'subscriber', (array) $currentuser->roles ) ) {
return $content;
} else {
echo 'Not allowed';
}
}
}
add_filter('the_content', 'filter_content');`
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0