Get post content from outside the loop with plugin shortcode usability

Well, you can do this with much less code:

echo apply_filters( 'the_content', get_post_field('post_content', $post_id) );

You can also use get_post_field function to get other fields like post_title, and so on.