1) WP için bunu yapan eklenti var mı bilmiyorum, varsa eklenti ile olabilir.
2) İndirme işlemini direk dosyanın bulunduğu URL üzerinden değil PHP ile yaptıracaksınız arka planda. PHP sayfası çağrılınca $_GET['download'] değerinne karşılık gelen dosyayı bulup, okuyup browser'a geri dondurecek. Google'da Forcing File Downloads in PHP olarak ararsanız orneklere ulaşabilirsiniz.
bir eklenti var fakat ücretli;
https://wpfilebase.com/
php konusuna göz atacağım, teşekkür ederim