Restringir links de PDF

Como posso restringir apenas os arquivos PDF que eu carreguei através do FTP, copiei o link de cada arquivo PDF e botões criados no WooCommerce, posso restringir a Página / Mensagem, mas não o PDF. Quero que os usuários entrem para poder visualizar os arquivos PDF. Eu apreciaria o apoio.

Solutions Collecting From Web of "Restringir links de PDF"

Você não pode restringir os usuários de baixar um arquivo de um caminho usando um login wordpress por várias razões, o mais importante é que o login do WP é tratado pelo PHP enquanto o download é gerenciado pelo Apache.

Dito isto, há uma maneira de alcançar o resultado do que você está procurando. O que você precisa fazer é escrever um manipulador de download personalizado para seus PDFs. Existem várias maneiras de fazer isso, mas eles se assemelham a algo assim.

function downloadPDF(){ if(!is_user_logged_in(){ //do your user isn't logged in logic here } else{ $path = WP_CONTENT_DIR . '/path/to/pdf'; //The path to the pdf file that you want to access. if(file_exists($path)){ //check to make sure the file exists header('Content-Description: File Transfer'); header('Content-Type: application/pdf'); header('Content-Disposition: attachment; filename="'.end(explode('/',$path).'"'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($path)); readfile($path); exit(); } else{ //do your invalid file logic here } } } 

O que está acontecendo aqui é que ele verifica se um usuário está logado. Se assim for, verifica se existe um arquivo e se ele o serve para download.

Note, este é um esqueleto extremamente básico do que você precisa fazer. Você precisará ativar essa function quando alguém tentar baixar um pdf (possivelmente com uma regra .htaccess + gancho de ação, mas há outras maneiras).