Форма с загрузкой изображений (картинок)

HTML

<form id="form-modal-job-<?php the_ID(); ?>" class="form-modal-job" enctype="multipart/form-data">
    <div class="title-modal">Оставить звявку на вакансию</div>
    <div class="descr-modal">Укажите ваши контакты, чтобы мы с вами связались</div>
    <input type="text" name="name" placeholder="Имя*" required>
    <input type="text" name="phone" placeholder="Ваш телефон или email*" required>
    <input type="file" name="file" placeholder="Прикрепите резюме">
    <label class="polit-form">
        <input name="polit" type="checkbox" checked="checked" required>
        <span class="checkmark">Я ознакомился с <a href="/privacy-policy/" target="_blank">политикой конфиденциальности</a></span>
    </label>
    <button class="btn">Отправить заявку</button>
    <div class="socials">
        <div class="descr-modal">либо напишите нам в соц. сетях</div>
        <a class="soc--inner whatsapp" href="https://api.whatsapp.com/send?phone=<?php the_field('whatsapp', 'option'); ?>&text=Здравствуйте%2C%20у%20меня%20возникли%20вопросы%2C%20можете%20помочь%3F%20😊" target="_blank" title="Написать в WhatsApp"></a>
        <a class="soc--inner telegram" href="https://t.me/<?php the_field('telegram', 'option'); ?>" title="Telegram"></a>
    </div>
    <input type="hidden" name="formData" value="Откликнулись на вакансию <?php the_title(); ?> (<?php the_permalink(); ?>), заявка с сайта <?php echo get_home_url(); ?>">
    <input type="hidden" name="mailsend" value="dedmund@yandex.ru">
<!--                                    <input type="hidden" name="mailsend" value="<?php the_field('email', 'option'); ?>">-->
</form>

LESS

mail-file.php

<?php
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    if (isset($_POST['mailsend'])) {$mailsend = $_POST['mailsend'];}
    if (isset($_POST['name'])) {$name = $_POST['name'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['formData'])) {$formData = $_POST['formData'];}

    // Дополнительные данные о файле
    $file_name = $_FILES['file']['name'];
    $file_tmp = $_FILES['file']['tmp_name'];
    $file_size = $_FILES['file']['size'];
    $file_type = $_FILES['file']['type'];

    $to = "$mailsend";
    $sendfrom = "info@danilsmg.ru";

    $subject = "$formData";

    $boundary = md5(uniqid(time()));

    $headers = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";

    $headers .= "Content-Type: multipart/mixed; boundary=\"" . $boundary . "\"\r\n\r\n";

    $message = "--" . $boundary . "\r\n";
    $message .= "Content-Type: text/html; charset=UTF-8\r\n";
    $message .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
    $message .= "<h3>" . $formData . "</h3><br>";
    $message .= "<b>Имя:</b> " . $name . "<br>";
    $message .= "<b>Телефон или Email:</b> " . $phone . "<br>";
    $message .= "\r\n\r\n";

    // Добавление файла к письму
    $file_content = file_get_contents($file_tmp);
    $file_content = chunk_split(base64_encode($file_content));

    $message .= "--" . $boundary . "\r\n";
    $message .= "Content-Type: application/octet-stream; name=\"" . $file_name . "\"\r\n";
    $message .= "Content-Transfer-Encoding: base64\r\n";
    $message .= "Content-Disposition: attachment; filename=\"" . $file_name . "\"\r\n\r\n";
    $message .= $file_content . "\r\n\r\n";
    $message .= "--" . $boundary . "--";

    $send = mail($to, $subject, $message, $headers, '-finfo@danilsmg.ru');
    if ($send == 'true') {
        echo '';
    }
} else {
    http_response_code(403);
    echo "";
}
?>

JS

(function(){
    $(document).ready(function () {
        $(".form-modal-job").submit(function (event) {
            event.preventDefault(); // Отменить стандартное поведение отправки формы

            var formID = $(this).attr('id');
            var formNm = $('#' + formID);
            var formData = new FormData(formNm[0]); // Используем первый элемент формы

            console.log("Form data:", formData);
            
            $.ajax({
                type: "POST",
                url: '/wp-content/themes/shablon/mail-file.php',
                data: formData, // Используем объект FormData в качестве данных
                processData: false, // Отключаем автоматическую обработку данных
                contentType: false, // Отключаем установку типа контента
                success: function (data) {
                    $('.modal-smg_boby').fadeOut();
                    $('.modal-smg-thanks').fadeIn();
                },
                error: function (jqXHR, text, error) {
                    $(formNm).html(error);
                }
            });

            return false;
        });
    });
})();
Контакты

Работаем: с ПН по ПТ, с 08:00 до 17:00 (МСК)
Отдыхаем: в СБ и ВС, чтобы быть в тонусе
и реализовывать самые сложные идеи