<div class="input__wrapper">
<input name="file" type="file" id="input__file" class="input input__file" value="1" multiple>
<label for="input__file" class="input__file-button">
<p class="input__file-icon-wrapper"><img class="input__file-icon" src="<?php echo get_template_directory_uri();?>/assets/img/icons/file_download.svg" alt="Выбрать файл" width="25"></p>
<p class="input__file-button-text">Выберите файл</p>
</label>
</div>
jQuery(document).ready(function ($) {
var add_form = $('#form-ivent');
var formData = new FormData(form);
// Сброс значений полей
$('#form-ivent input, #form-ivent textarea').on('blur', function () {
$('#form-ivent input, #add_feedback textarea').removeClass('error');
$('.error-name,.error-tel,.error-email,.error-comments').remove();
$('#submit-form-ivent').val('Отправить');
});
// Отправка значений полей
var options = {
url: feedback_object.url,
data: {
action: 'feedback_action',
nonce: feedback_object.nonce,
formData,
},
type: 'POST',
dataType: 'json',
beforeSubmit: function (xhr) {
// При отправке формы меняем надпись на кнопке
$('#submit-form-ivent').val('Отправляем...');
},
success: function (request, xhr, status, error) {
if (request.success === true) {
// Если все поля заполнены, отправляем данные и меняем надпись на кнопке
// add_form.after('<div class="message-success">' + request.data + '</div>').slideDown();
$('#submit-form-ivent').val('Отправлено');
} else {
// Если поля не заполнены, выводим сообщения и меняем надпись на кнопке
$.each(request.data, function (key, val) {
$('.art_' + key).addClass('error');
$('.art_' + key).before('<p class="error-' + key + '">' + val + '</p>');
});
$('#submit-form-ivent').val('Ошибка...');
}
// При успешной отправке сбрасываем значения полей
$('#form-ivent')[0].reset();
},
error: function (request, status, error) {
$('#submit-form-ivent').val('Ошибка...');
}
};
// Отправка формы
add_form.ajaxForm(options);
});
// Проверяем файлов
if($_FILES) {
$filepath = array();
$filename = array();
$i = 0;
foreach ($_FILES["file"]["error"] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$filename[$i][0] = $_FILES["file"]["tmp_name"][$key];
$filename[$i][1] = $_FILES["file"]["name"][$key];
$i++;
}
}
}
// Указываем адресата
$email_to = 'email@yandex.ru';
// Если адресат не указан, то берем данные из настроек сайта
if ( ! $email_to ) {
$email_to = get_option( 'admin_email' );
}
$body = "Имя: $art_name \nТелефон: $art_tel \nEmail: $art_email \n\n\nМероприятие: $art_ivent \nИнтеграция: $art_adv \nСообщение: $art_comments";
$headers = 'From: ' . $art_name . ' <' . $email_to . '>' . "\r\n" . 'Reply-To: ' . $email_to;
$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$multipart .= $body;
foreach ($filename as $key => $value) {
$fp = fopen($value[0], "r");
$content = fread($fp, filesize($value[0]));
fclose($fp);
$file .= "--".$boundary."\r\n";
$file .= "Content-Type: application/octet-stream\r\n";
$file .= "Content-Transfer-Encoding: base64\r\n";
$file .= "Content-Disposition: attachment; filename=\"".$value[1]."\"\r\n\r\n";
$file .= chunk_split(base64_encode($content))."\r\n";
}
$multipart .= $file."--".$boundary."--\r\n";
// Отправляем письмо
wp_mail( $email_to, $art_subject, $body, $headers, $filename, $multipart );
// Отправляем сообщение об успешной отправке
$message_success = 'Сообщение отправлено. В ближайшее время с вами свяжутся.';
wp_send_json_success( $message_success );
}