【问题标题】:Download File after submission Contact Form 7 Wordpress提交后下载文件联系表格 7 Wordpress
【发布时间】:2016-03-18 21:29:45
【问题描述】:

我知道在 wordpress 中提交联系表单 7 构建表单后如何将表单重定向到另一个页面。因此,例如,我可以将其重定向到 pdf 文件。 (然后在浏览器中打开)

但我想要的是在提交时直接下载。没有重定向。

我用来将表单重定向到 pdf 文件的代码是:

on_sent_ok: "location = 'url to pdf file here';"

完美的方式是表单消失并说 a 感谢您在表格位置的通知并开始下载 PDF 文件

【问题讨论】:

  • 发布您的代码,如果您已经有需要改进的地方,它很容易为您提供帮助。
  • 提交到 pdf 文件后我用来重定向表单的代码是:on_sent_ok: "location = 'url to pdf file';"

标签: javascript wordpress contact-form-7


【解决方案1】:

您可以通过在 PDF 目录中添加此 .htaccess 文件来强制直接下载 pdf 而不是在服务器上查看。

.htaccess - 这将强制下载 PDF

<FilesMatch "\.(?i:pdf)$">
   ForceType application/octet-stream
   Header set Content-Disposition attachment
</FilesMatch>

或者你可以试试javascript(未经测试)

function force_download( file ) {
    pdf = window.open(file, '', 'left=100,screenX=100');
    pdf.document.execCommand('SaveAs', 'null', 'myfile.pdf');
    pdf.close();
 }
 on_sent_ok: "force_download('pdf_url_here');"

【讨论】:

    【解决方案2】:

    由于 on_sent_ok 已被弃用,这里有一个示例可供您参考。 我需要在网站的所有案例研究内容之后添加下载 CTA,但“以交换”用户数据:

    • 在您的页面上显示一个 CF7 表单,我在所有案例研究帖子类型中都有相同的表单,我在内容之后挂钩
    • 找到一种方法来获取所需的 PDF 网址供人们下载,因为对我而言,所有案例研究都有不同的 PDF,我只是添加了一个 ACF 字段,仅在 PDF 上过滤,它返回文件网址
    • 基于CF7 Dom events,选择您希望进行下载的操作,因为我不发送任何确认电子邮件,我更喜欢处理 wpcf7submit 事件。请注意,仅当表单已被验证时才会触发 wpcf7submit 事件

    所以代码看起来像这样:

    <?php 
    // For simplicity, using an anonymous functions
    add_action( 'wp_print_footer_scripts', function () {
        // Check the wanted singular post type loading
        if ( is_admin() || ! is_singular( 'case-study' ) ) {
            return;
        }
    
        // Check if the ACF PDF field is not empty for use
        $pdf_link = get_field( 'pdf' );
        if ( empty( $pdf_link ) ) {
            return;
        }
    
        // Hook on the "wpcf7submit" CF7 Dom event to force the download
        printf( "<script>document.addEventListener( 'wpcf7submit', function( event ) { window.open('%s'); }, false );</script>", $pdf_link );
    } );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多