Как я могу изменить код ниже для прикрепления нескольких файлов к письму, если они генерируются? Когда я добавляю более одного файла, письмо не отправляется. Мой текущий код для прикрепления файлов к письму выглядт так: <br/><br/><pre><code class="php">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));
}
}</code></pre><br/><br/>
Почему мой код не работает для прикрепления нескольких файлов к письму? Он работает только для одного файла.
Для того чтобы ваш код корректно прикреплял несколько файлов к письму в Contact Form 7 на WordPress, вам нужно изменить способ объединения файлов в переменную $attachments. Вместо использования implode(), используйте просто добавление файлов к массиву $attachments.
Вот как вы можете изменить ваш код:
```php
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'] = $attachments;
$contact_form->set_properties(array('mail' => $mail));
}
}
```
Этот код должен корректно добавить все файлы к письму в Contact Form 7. Вам также необходимо убедиться, что у вас правильные пути к файлам и что они существуют на сервере. Если у вас по-прежнему возникают проблемы с отправкой писем, может быть разумно добавить проверки на ошибки в коде для лучшего понимания, что именно не работает.
$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' );