/**
  * Install all requirements for Download Monitor
  */
 public function install()
 {
     // Init User Roles
     $this->init_user_roles();
     // Setup Taxonomies
     require_once 'class-dlm-taxonomy-manager.php';
     $taxonomy_manager = new DLM_Taxonomy_Manager();
     $taxonomy_manager->setup();
     // Setup Post Types
     require_once 'class-dlm-post-type-manager.php';
     $post_type_manager = new DLM_Post_Type_Manager();
     $post_type_manager->setup();
     // Create Database Table
     $this->install_tables();
     // Directory Protection
     $this->directory_protection();
     // Add endpoints
     require_once 'class-dlm-download-handler.php';
     $dlm_download_handler = new DLM_Download_Handler();
     $dlm_download_handler->add_endpoint();
     // Set default 'No access message'
     $dlm_no_access_error = get_option('dlm_no_access_error', '');
     if ('' === $dlm_no_access_error) {
         update_option('dlm_no_access_error', sprintf(__('You do not have permission to access this download. %sGo to homepage%s', 'download-monitor'), '<a href="' . home_url() . '">', '</a>'));
     }
     // Set the current version
     require_once 'class-dlm-constants.php';
     update_option(DLM_Constants::OPTION_CURRENT_VERSION, DLM_VERSION);
 }