Отправить несколько вложений с wp_mail в PHP - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь отправить несколько вложений с 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 или несколько файлов в мой файл, кратный.

...