Привет всем.
Написал скрипт по правилам 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 = [
"MIME-Version: 1.0",
"From: $contactPerson <$personEmail>",
"Content-Type: text/html; charset=UTF-8",
"Bcc: altuofianco.topcare@gmail.com"
];
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);
}
}
}
Заранее благодарен.