2015-12-01 38 views
1

玩弄我終於明白了......顯然感謝@vard。將數據從聯繫人表單7保存到FTP服務器

以下代碼將文件發送到所需的FTP。要運行更多的測試,並確保沒有更多的錯誤,

小問題。即使請求經過,Sumbit圈也不斷轉動。應該很容易理解。希望這可以幫助那裏的人。

add_action('wpcf7_before_send_mail', 'log_cf7'); 


function log_cf7($WPCF7_ContactForm) { 
    $submission = WPCF7_Submission::get_instance(); 
    $data = $submission->get_posted_data(); 


    $data2 = print_r($data, true); 

    $myfile = fopen($_SERVER['DOCUMENT_ROOT'] . "/tempFile.txt","wb"); 

    fwrite($myfile, $data2); 
    $ftp_server="-"; 
    $ftp_username="-"; 
    $ftp_userpass="-"; 
    $ftp_conn = ftp_connect($ftp_server) or die("Could not connect to server"); 
    $login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass); 
    if(ftp_put($ftp_conn,"newdata.txt",$_SERVER['DOCUMENT_ROOT'] . "/tempFile.txt",FTP_ASCII)) 
    { 
     print("yay"); 
    } 
    else 
    { 
     print("f..."); 
    } 
    fclose($myfile); 
} 
+0

太棒了!除了旋轉的圈子,對我很好。你有沒有想過這個?謝謝! – Marcio

+0

嘿@Marcio,不幸的是該項目被取消,我從來沒有解決它。 :/ .. ID建議打開一個新的問題,因爲我沒有再次觸摸PHP自2016年初以來:) – MrD

回答

1

可以使用wpcf7_before_send_mail行動,以便在發送郵件之前處理您的功能。添加以下到您的functions.php文件:

add_action('wpcf7_before_send_mail', 'log_cf7'); 
function log_cf7($WPCF7_ContactForm) { 
    $submission = WPCF7_Submission::get_instance(); 
    $data = $submission->get_posted_data(); 
    // do your ftp log here 
} 

$data是包含您的形式的內容(鍵輸入=名稱,值=輸入值)的陣列。

要寫入另一臺服務器,您可以使用PHP FTP

+0

嗨,感謝您的答案,現在忙測試它。希望它的工作.. – MrD

+0

我已經建立了我需要的,(我認爲)只是找不到合適的地方放它。嘗試主要functions.php。打破了網站。嘗試插件functions.php。什麼也沒做......任何建議:)? – MrD

+0

那麼你應該使用你的主題中的_functions.php_。如果它打破了網站,那麼你應該有一個PHP錯誤(也許是語法錯誤)。你可以嘗試在你的_wp-config.php_文件中將'WP_DEBUG'常量設置爲'true'來查看是否顯示任何錯誤信息? – vard

相關問題