Я пытаюсь отправить несколько вложений с wp_mail()
, после некоторых проблем с именами вложений (отображалось что-то вроде phprTxfd.pdf
вместо file_name.pdf
), мне удалось отобразить имя вложения.
Но когда я пытаюсь отправить несколько вложений, в письме отображается только первое вложение, а не остальные.
Вот мой код :
function my_custom_email_content_type( $content_type ) {
return 'text/html';
}
if ( ! function_exists( 'wp_handle_upload' ) ) {
require_once( ABSPATH . 'wp-admin/includes/file.php' );
}
$files = $_FILES[ 'fichier' ];
$upload_overrides = array( 'test_form' => false );
$attachments = array();
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,
$upload_overrides
);
$attachments[] = $movefile[ 'file' ];
}
}
add_filter(
'wp_mail_content_type',
'my_custom_email_content_type'
);
wp_mail($to, $subject, $message, $headers, $attachments);
Я думаю, что проблема в том, что $files = $_FILES['fichier']
просто сохранит первый файл в переменной.
Я пытался поместить $ files в массив, но он не работает.
Спасибо.
РЕДАКТИРОВАТЬ :
print_r($files)
показать это:
Array ([имя] =>Array ([0] => logo1.png [1] => logo2.png) [type] => Array ([0] => image / png [1] => image / png) [tmp_name] => Array ([0] => C: \ xamp \ tmp \ phpC62D.tmp [1] => C: \ xamp \ tmp \ phpC62E.tmp) [error] => Массив ([0] => 0 [1] => 0) [size] => Array ([0] => 4440 [1] => 7830))
, когда я пытаюсь вставить 2 или несколько файлов в мой файл, кратный.