WP mail attachment from form without upload file on filemanager WP mail attachment from form without upload file on filemanager wordpress wordpress

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

  1. Upload the file to the server
  2. email with wp-mail
  3. 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);