間違いなく可能です。個人的には、無料のものをダウンロードするために連絡先情報を共有させられるのは嫌いなので、それを任意にすることを強くお勧めします。
しかし、あなたは本当にそれをやりたいので、URL にある種の ?submit=success サフィックスを設定するだけです。それが存在する場合は、ダウンロード リンクを表示します。
functions.php
これをファイルに追加して機能させることができます(編集: ショートコードを他のダウンロードに再利用できるように調整しました。):
// Get current page URL and clean it up
$url_current = @( $_SERVER["HTTPS"] != 'on' ) ? 'http://'.$_SERVER["SERVER_NAME"] : 'https://'.$_SERVER["SERVER_NAME"];
$url_current .= ( $_SERVER["SERVER_PORT"] !== 80 ) ? ":".$_SERVER["SERVER_PORT"] : "";
$url_current .= $_SERVER["REQUEST_URI"];
$url_clean = array_shift( explode('?', $url_current) );
$url_success = $url_clean . '?submit=success';
function free_download( $atts ) {
// Get variables
extract(shortcode_atts(array(
'contact_form' => '',
'download_link' => ''
), $atts));
// Modify variables
$contact_form = do_shortcode('[' . $contact_form . ']');
if ($url_current == $url_success) {
return $download_link;
}
else {
return $contact_form;
}
}
add_shortcode('free_download', 'free_download');
Contact Form 7 の設定で、次の手順に従って適切なリダイレクト リンクを設定します (同じページですが、?submit=success サフィックスが付いています): http://wordpress.org/support/topic/plugin-contact-form-7-フォームの後にページへのリダイレクトが成功しました
WP コンテンツ エディターで、ショートコードを使用し[free_download contact_form='contact-form-7 id="12345" title="whatever"' download_link='<p>Some message here. <a href="http://YOUR-DOWNLOAD-LINK.pdf">Download</a></p>']
てコンテンツを埋め込みます。
このアプローチでは、?submit=success リンクを使用する誰かが引き続きコンテンツにアクセスできるため、コンテンツは 100% 保護されているわけではありませんが、平均的な訪問者がアクセスできないように隠されています。