@vvvadimos

Wordpress. Contact Form 7. Как программно прикрепить к письму файлы?

Сайт на вордпрессе, для форм использую плагин Contact Form 7. Есть задача прикрепить к письму несколько файлов, кодом, так как файлы будут генерироваться. Пробую послать пустой файлик txt. Если посылаю один - приходит, если несколько - нет. Код прикрепления файла - ниже:

add_action('wpcf7_before_send_mail', 'custom_attach_files_to_email');
function custom_attach_files_to_email($contact_form) {
    $submission = WPCF7_Submission::get_instance();
    if ($submission) {
        $uploaded_files = $submission->uploaded_files();
        $attachments = array();
        
        foreach ($uploaded_files as $uploaded_file) {
            $attachments[] = $uploaded_file;
        }
        
        $attachments[] = WP_CONTENT_DIR . '/uploads/files/file.txt';
        //$attachments[] = WP_CONTENT_DIR . '/uploads/files/file_2.txt';
        
        $mail = $contact_form->prop('mail');
        $mail['attachments'] = implode(',', $attachments);
        $contact_form->set_properties(array('mail' => $mail));
    }
}


Что делаю не так? Примечание: если в форме есть поле файла, то код выше не работает также и для одного txt файла
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 1
@berdnikovroman
$mail = $contact_form->prop( 'mail' );
$mail['attachments'] = $mail['attachments'] . "\n" . WP_CONTENT_DIR . '/uploads/files/file.txt';

$contact_form->set_properties([
    "mail" => $mail
]);
// Файл будет удален
$submission->add_extra_attachments( WP_CONTENT_DIR . '/uploads/files/file.txt' );
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы