@Titamik
Я тут задаю самые глупые вопросы..

Ajax отправка файла по почте Wordpress?

Как передать загруженный файл в <input type="file" name="attach" id="file"> используя Ajax.
И как принять этот файл чтобы записать его в $attachments, для дальнейшего прикрепления ко вложениям письма?

add_action('wp_footer', 'my_action_javascript', 99); 
function my_action_javascript() {
	?>
	<script type="text/javascript" >
	$("#vacancy_form").submit(function(e) {
		e.preventDefault();
		
		var data = new FormData(this);
		
		data.append('action', 'my_action');
		
		$.ajax({
			url : myajax.url,
			type : 'POST',
			processData: false,
			contentType: false,
			data : data,
			success : function (msg){
				alert('Ответ: ' + msg);
			}
		});
		
	});
		
		
	</script>
	<?php
}

add_action('wp_ajax_my_action', 'my_action_callback');
add_action('wp_ajax_nopriv_my_action', 'my_action_callback');
function my_action_callback() {

$attachment =????;

	
	$project_name = trim($_POST["project_name"]);
	$admin_email  = "titamik777@yandex.ru";//trim($_POST["admin_email"]);
	$form_subject = trim($_POST["form_subject"]);
	
	foreach ( $_POST as $key => $value ) {
		if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) {
			$message .= "
			" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
				<td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
				<td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
			</tr>
			";
		}
	}

	$message = "<table style='width: 100%;'>$message</table>";

	function adopt($text) {
		return '=?UTF-8?B?'.Base64_encode($text).'?=';
	}

	$headers = "MIME-Version: 1.0" . PHP_EOL .
	"Content-Type: text/html; charset=utf-8" . PHP_EOL .
	'From: '.adopt($project_name).' <'.$admin_email.'>' . PHP_EOL .
	'Reply-To: '.$admin_email.'' . PHP_EOL;

	wp_mail($admin_email, adopt($form_subject), $message, $headers, $attachment);
	
	wp_die();
}
  • Вопрос задан
  • 137 просмотров
Пригласить эксперта
Ответы на вопрос 1
JaxAdam
@JaxAdam
Junior Full-Stack Developer
Тут описано.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы