2017-08-28 27 views
0

私はファイルアップロードフィールド(CVアップロード)を持つ連絡フォームを持っています。WordPressにアップロードされた添付ファイルを添付したメールを送信する

メールやメッセージに問題はありませんが、フォームからCVを添付するためにネットから使用した例はありません。

ここには何かがありますか?

<input type="text" name="fullName" placeholder="Full Name: (required)" required> 
<input type="email" name="email" placeholder="Email: (required)" required> 
<input type="tel" name="tel" placeholder="Telephone: (required)" required> 
<textarea name="message" placeholder="Quick message"></textarea> 
<span>Please upload a copy of your cv</span><span><input type="file" name="cv" required></span> 


//Handle the file upload and attachment 
if (! function_exists('wp_handle_upload')) { 
    require_once(ABSPATH . 'wp-admin/includes/file.php'); 
} 
$uploadedfile = $_FILES['cv']; 
$upload_overrides = array('test_form' => false); 
$movefile = wp_handle_upload($uploadedfile, $upload_overrides); 
if ($movefile && ! isset($movefile['error'])) { 
    $movefile['url']; 
} 
$attachments = array($movefile['file']); 

$mailoffice = wp_mail('[email protected]', 'New Candidate Application', $messageOffice, $headers, $attachments); 
+0

「動作していません」を定義します – Synchro

+0

メールは、すべてのメッセージの内容とフォームからの値の送信を行います。しかし、添付ファイルのPHPには添付ファイルが含まれていません。 –

+0

'wp_mail'はファイル名の配列を期待しています...そして' wp_handle_upload'が返すものは何か違うものです。 – CBroe

答えて

0

わかりました。

まずフォームを出力するページへの添付ファイルとしてサイトにファイルをアップロードします。

次に、添付ファイルのパスを取得し、wp_mail()の添付ファイルとして追加してから、メールを送信した後に添付ファイルを削除します。

//Handle the CV Upload 
require_once(ABSPATH . 'wp-admin/includes/image.php'); 
require_once(ABSPATH . 'wp-admin/includes/file.php'); 
require_once(ABSPATH . 'wp-admin/includes/media.php');   

$attachment_id = media_handle_upload('cv', $_POST['post_id']); 
$attachments = get_attached_file($attachment_id); 

$mailoffice = wp_mail('[email protected]', 'New Candidate Application', $messageOffice, $headers, array($attachments)); 
wp_delete_attachment($attachment_id, true); 

その素朴ですが、機能します。

関連する問題