我已經準備了3個解決方案爲您服務。我認爲第二個是最簡單的,並按照你的要求。
解決方案1
在你的情況window.location
永遠不會工作,除非你做出HTTP請求和安裝頭告訴瀏覽器處理請求的字節流。
// PHP example code
header('Content-disposition: attachment; filename=FILENAME.pdf');
header('Content-type: application/pdf');
解決方案2
最好的辦法是創造anchor
元素,它擁有所有的下載信息,然後執行.click()
方法。
讓我們來準備我們的功能,它將爲我們處理所有事情。
function downloadFile(path) {
var fileName = path.split('/').pop();
// We create anchor
var element = document.createElement('a');
// Let's add properties to our anchor
element.href = path;
element.download = fileName;
// Now we fire .click() method
element.click();
}
document.addEventListener('wpcf7mailsent', function(event) {
downloadFile('http://domain/path/filename.pdf');
}, false);
解決方案3
爲什麼不通過電子郵件發送PDF?要做到這一點,我們需要勾選wpcf7_before_send_mail
動作。
這是我使用的代碼,應該使用最新的CF7
。
add_action("wpcf7_before_send_mail", "wpcf7_do_something_else");
function wpcf7_do_something_else($cf7) {
$wpcf = WPCF7_ContactForm::get_current();
$mail = $cf7->prop('mail');
// Use it if you need to access form Id
// $wpcf->id;
// Your attachment do magic here
$mail['attachments'] .= "\nuploads/regulations.pdf";
$cf7->set_properties(array('mail' => $mail));
return $wpcf;
}
哦,嘿,非常感謝。從來沒有想過你的第三個解決方案。這對我來說真的是最好的選擇!謝謝! –