Поддержка Проблемы и решения Почему не приходит файл из формы на почту?

  • Привет всем.
    Написал скрипт по правилам wordpress для отправки на почту.
    Форму у меня слшиком сложная, множество селектов, для этого подключил vue inline.
    И еще нужно отправить некоторые данные на api и на несколько почт.

    Письма приходят, только проблема с прикрепленным файлом.
    В переменной $attachments путь до файла есть, а на почту не приходит.
    Уже второй день мучаюсь.
    Вот сам скрипт.
    Переменные я спрятал.

    
    <?php
        function true_localize_example()
        {
            wp_enqueue_script('truescript', get_template_directory_uri() . '/vue/topcare/ajax.js', [], null, false);
            wp_localize_script('truescript', 'true_object', array(
                'ajax_url' => admin_url('admin-ajax.php'),
                'nonce'    => wp_create_nonce('feedback-nonce'),
            ));
        }
        add_action('wp_enqueue_scripts', 'true_localize_example');
        add_action('wp_ajax_topcare', 'ajax_form');
        add_action('wp_ajax_nopriv_topcare', 'ajax_form');
        function ajax_form()
        {
            if (!wp_verify_nonce($_POST['nonce'], 'feedback-nonce')) {
                wp_die('Data was recieved from another address');
            }
            if (!empty($_POST['checkField'])) {
                wp_die('This is a spam');
            }
            if (!function_exists('wp_handle_upload')) {
                require_once(ABSPATH . 'wp-admin/includes/file.php');
            }
            $file = $_FILES['administrator_file'];
    
            if ($file) {
                $upload_overrides = array(
                    'test_form' => false
                );
    
                $file_project = wp_handle_upload($file, $upload_overrides);
                $attachments = array(
                    $file_project['url'] // 3 файл
                );
    
                $headers = [
                    &quot;MIME-Version: 1.0&quot;,
                    &quot;From: $contactPerson <$personEmail>&quot;,
                    &quot;Content-Type: text/html; charset=UTF-8&quot;,
                    &quot;Bcc: altuofianco.topcare@gmail.com&quot;
                ];
                add_filter('wp_mail_content_type', 'my_custom_email_content_type');
                function my_custom_email_content_type()
                {
                    return 'text/html';
                }
    
                if (wp_mail($mail_to, $thmClient, $clientMessage, $headers, $attachments)) {
                    $output = json_encode(array('type' => 'success', 'text' => 'Email was sent successfully'));
                    wp_die($output);
                }
            }
        }

    Заранее благодарен.

    • Тема изменена 1 год, 10 месяцев назад пользователем seriiserii825.
  • Тема «Почему не приходит файл из формы на почту?» закрыта для новых ответов.