Not for profit membership site on WordPress

When you publish a post or page on WordPress you can set the status to Private. This means that this content is only viewable to registered and logged in users.

You can then restrict files to the person who uploaded them (or disable upload for non-admin). Here is an example of how to do that.

You could add a PDF to each post using the Media Library and then add a link to each post that sends an email to an administrator to approve sending the PDF.

With a little thought anything is possible.

The following code will force post status to private:

// Update Post Status to Private 
function force_type_private($post) {
  if ($post['post_status'] != 'trash' && $post['post_status'] != "draft" && $post['post_status'] != "auto-draft") {
    $post['post_status'] = 'private';
  }
  return $post;
}
add_filter('wp_insert_post_data', 'force_type_private');