绝对有可能。我个人讨厌人们让我分享我的联系信息以下载免费的东西,所以我强烈建议您将其设为可选。
但是,既然您真的想这样做,我只需为 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');
在您的联系表 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% 真正受到保护,但它被隐藏了,因此普通访问者无法访问它。