The simplest way to hide content from logged out users by wrapping content in [protect] hide me [/protect]
/*************
PROTECT SHORTCODE - If user is not logged in, content within [protect] is replaced with a predefined string.
*****************/
add_action( 'init', 'dm2_register_protect_shortcode');
function dm2_register_protect_shortcode() {
add_shortcode('protect', 'dm2_protect_function');
}
function dm2_protect_function($atts, $content = null) {
if ( is_user_logged_in() ) {
$return_string = $content;
} else {
$return_string = 'You must be logged in to view this content';
}
wp_reset_query();
return $return_string;
}