Главная ошибка в том, что вы просто дерете откуда-то код и не думаете как это вообще все должно работать.
Первое что нужно добавить:
<form enctype="multipart/form-data">
Второе, вам нужно в поле action написать ссылку скрипта, который будет обрабатывать это, например
action="/formHandler.php"
Третье, для того чтобы иметь какой-то доступ к файлу, вам его нужно для начала загрузить куда-то, средствами вордпресс это делается через
данную функцию (думаю погуглить на русском варианты реализации вы сможете). Вот например кусок кода, который будет грузить файл на сайт и возвращать ссылку:
if(isset($_FILES['file2']) && wp_verify_nonce( $_POST['file2_nonce'], 'file2' ) ){
$files = $_FILES['file2'];
$overrides = array( 'test_form' => false );
foreach ($files['name'] as $key => $value) {
if ($files['name'][$key]) {
$file = array(
'name' => $files['name'][$key],
'type' => $files['type'][$key],
'tmp_name' => $files['tmp_name'][$key],
'error' => $files['error'][$key],
'size' => $files['size'][$key]
);
$movefile = wp_handle_upload($file,$overrides);
$file_url = $movefile['url']; // Ссылка на файл
}
}
}
В этом коде важно обратить внимание на следующие вещи:
$_FILES['file2']
- тут file2 - название вашего инпута, куда вы грузите файл, например <input type="file" name="file2">
$_POST['file2_nonce'
] - это скрытый инпут в форме, который вставляется так: <?php wp_nonce_field(); ?>
Подробнее об этой функции
UPD: для работы куска кода с загрузкой файла, нужно в начале скрипта прописать:
require_once( $_SERVER['DOCUMENT_ROOT'].'/wp-load.php');
require_once( ABSPATH . 'wp-admin/includes/image.php' );
require_once( ABSPATH . 'wp-admin/includes/file.php' );
require_once( ABSPATH . 'wp-admin/includes/media.php' );
Собственно получив ссылку на файл, нам надо его как-то отправить, самым простым решением будет подключение библиотеки
PHP Mailer. С помощью нее можно спокойно прикрепить файл методами:
$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
В общем-то это вся, надеюсь, исчерпывающая информация по вашей проблеме.