簡體   English   中英

提交后下載文件聯系表格 7 Wordpress

[英]Download File after submission Contact Form 7 Wordpress

我知道如何在 wordpress 中提交聯系表單 7 構建表單后將表單重定向到另一個頁面。 例如,我可以將其重定向到 pdf 文件。 (然后在瀏覽器中打開)

但我想要的是在提交時直接下載。 沒有重定向。

我用來將表單重定向到 pdf 文件的代碼是:

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

完美的方式是表格將消失並在表格的位置說謝謝通知並開始下載PDF文件

您可以通過在 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');"

由於 on_sent_ok 已被棄用,這里有一個示例,您可以從中獲得靈感。 我需要在網站的所有案例研究的內容之后添加一個下載 CTA,但是“交換”用戶的數據:

  • 在您的頁面上顯示一個 CF7 表單,我在所有案例研究帖子類型中都有相同的表單,我在內容后對其進行了連接
  • 找到一種方法來獲取人們想要的 PDF url 供人們下載,至於我所有的案例研究都有不同的 PDF,我只是添加了一個 ACF 字段,僅在 PDF 上過濾,它返回文件 url
  • 基於CF7 Dom 事件,選擇您喜歡的操作來進行下載,因為我沒有發送任何確認電子郵件,我更喜歡處理 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 );
} );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM