I am trying to create a form which can be sent by users with an attachment. The form works fine and sending the emails when it is submitted but without the attached file.
my form is :
<form method="post" class="flat-p-form p-form-flat-extra5color4" action="<?php the_permalink(); ?>" data-js-validate="true" data-js-highlight-state-msg="true" data-js-show-valid-msg="true">
<div class="form-group">
<label for="fotoattachment" class="p-label-required">Attachment <span style="color: red">(Attach Your Photos as A ZIP File.)</span></label>
<div class="input-group p-has-icon">
<input type="file" class="file form-control" id="fotoattachment" name="fotoattachment" required="required"/>
<span class="input-group-state">
<span class="p-position">
<span class="p-text">
<span class="p-required-text"><i class="fa fa-star"></i></span>
</span>
</span>
</span>
<span class="p-field-cb"></span>
<span class="input-group-icon"><i class="fa fa-paperclip"></i></span>
</div>
</div>
<button class="btn" type="submit" name="confirm"><i class="fa fa-share-square-o"></i> Submit</button>
</form>
And my PHP is:
if(isset($_POST['confirm'])){
$fullname = $_POST['sudentname'];
$email = $_POST['email'];
$comment = $_POST['comment'];
$batch = $_POST['batch'];
$mailbody = 'Name :'. $fullname . "\r\n".'Email: '.$email. "\r\n".'Comment: '.$comment. "\r\n".'Batch: '.$batch;
/* attachment */
move_uploaded_file($_FILES["fotoattachment"]["tmp_name"],WP_CONTENT_DIR .'/uploads/'.basename($_FILES['fotoattachment']['name']));
$attachments = array(WP_CONTENT_DIR ."/uploads/".$_FILES["fotoattachment"]["name"]);
$to = '[email protected]';
$subject = 'Feedback from Website';
$headers = 'From: '.$fullname.' <'. $email. '>';
wp_mail( $to, $subject, $mailbody, $headers, $attachments );
}
I am getting emails but not the attached files. Why is that?
[UPDATE]
When I check like this after form submitting :
foreach ($attachments as $key => $value) {
echo "$key = $value\n";
}
The out put is Array
I am trying to create a form which can be sent by users with an attachment. The form works fine and sending the emails when it is submitted but without the attached file.
my form is :
<form method="post" class="flat-p-form p-form-flat-extra5color4" action="<?php the_permalink(); ?>" data-js-validate="true" data-js-highlight-state-msg="true" data-js-show-valid-msg="true">
<div class="form-group">
<label for="fotoattachment" class="p-label-required">Attachment <span style="color: red">(Attach Your Photos as A ZIP File.)</span></label>
<div class="input-group p-has-icon">
<input type="file" class="file form-control" id="fotoattachment" name="fotoattachment" required="required"/>
<span class="input-group-state">
<span class="p-position">
<span class="p-text">
<span class="p-required-text"><i class="fa fa-star"></i></span>
</span>
</span>
</span>
<span class="p-field-cb"></span>
<span class="input-group-icon"><i class="fa fa-paperclip"></i></span>
</div>
</div>
<button class="btn" type="submit" name="confirm"><i class="fa fa-share-square-o"></i> Submit</button>
</form>
And my PHP is:
if(isset($_POST['confirm'])){
$fullname = $_POST['sudentname'];
$email = $_POST['email'];
$comment = $_POST['comment'];
$batch = $_POST['batch'];
$mailbody = 'Name :'. $fullname . "\r\n".'Email: '.$email. "\r\n".'Comment: '.$comment. "\r\n".'Batch: '.$batch;
/* attachment */
move_uploaded_file($_FILES["fotoattachment"]["tmp_name"],WP_CONTENT_DIR .'/uploads/'.basename($_FILES['fotoattachment']['name']));
$attachments = array(WP_CONTENT_DIR ."/uploads/".$_FILES["fotoattachment"]["name"]);
$to = '[email protected]';
$subject = 'Feedback from Website';
$headers = 'From: '.$fullname.' <'. $email. '>';
wp_mail( $to, $subject, $mailbody, $headers, $attachments );
}
I am getting emails but not the attached files. Why is that?
[UPDATE]
When I check like this after form submitting :
foreach ($attachments as $key => $value) {
echo "$key = $value\n";
}
The out put is Array
1 Answer
Reset to default 1Is the file correctly saved?
Did you try attaching a file via static path? Something like:
$attachments = array(WP_CONTENT_DIR ."/uploads/myfile.pdf");