WP mail attachment from form without upload file on filemanager
Well I had to come up with workaround for this one
What I did is
- Upload the file to the server
- email with wp-mail
- on successful email or not; unlink the uploaded image
1.Upload the file to the server
/*image upload *//* GET File Variables */$target_dir = $_SERVER['DOCUMENT_ROOT']. "/uploads/";$image_name = $_FILES['YOUR_IMAGE']['name'];$target_file = $target_dir . basename($_FILES['YOUR_IMAGE']['name']);$uploadOk = 1;$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));// Check if image file is a actual image or fake image$check = getimagesize($_FILES["YOUR_IMAGE"]["tmp_name"]);if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1;} else { echo "File is not an image."; $uploadOk = 0;}// Check file sizeif ($_FILES["YOUR_IMAGE"]["size"] > 500000) { echo "Sorry, your file is too large."; $uploadOk = 0;}// Allow certain file formatsif($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) { echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed."; $uploadOk = 0;}// Check if $uploadOk is set to 0 by an errorif ($uploadOk == 0) { echo "Sorry, your file was not uploaded."; // if everything is ok, try to upload file} else { if (move_uploaded_file($_FILES["YOUR_IMAGE"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["YOUR_IMAGE"]["name"]). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; }}$attachment = array($target_file);
2.email with wp-mail
$to = $Email; // put your email here $headers = array('Content-Type: text/html; charset=UTF-8','From:' . $name . '<' . $fromEmail . '>'); // $headers = 'From:' . $name . '<' . $studentEmail . '>' . "\r\n"; // put user's email here or duplicate your email $subject = 'Apply Online Form'; if (wp_mail($to, $subject, $message, $headers, $attachment ) === false) { echo "Error"; unlink($target_file); } else { unlink($target_file); echo "<h3> Mail Sent Successfully</h3>"; }
3.on successful email or not unlink the uploaded image
unlink($target_file);