Contact Form 7 - Как отправить вложение отправителю формы?

19 окт. 2011 г., 15:35:53
Просмотры: 31.3K
Голосов: 2

Я установил плагин Contact Form 7 на WordPress 3.2.1.

Я настроил контактную форму для пользователей, чтобы они могли запрашивать оценки.

Всё работает нормально, но я хотел бы, чтобы при отправке запроса пользователям автоматически отправлялось письмо с прикрепленной брошюрой о продукте.

Сейчас у меня настроено следующим образом:

Настройки отправки файла в Contact Form 7

Я пробовал использовать [file-691], где 691 это ID загруженного медиафайла в медиагалерее.

Оба способа не работают.
Как правильно реализовать эту задачу?

0
Все ответы на вопрос 5
0

Насколько мне известно, функция, которую вы пытаетесь использовать, не предназначена для такого применения. На самом деле она создана для того, чтобы отправитель имел возможность загрузить файл, который будет прикреплен к его почтовому сообщению.

Не думаю, что такая возможность доступна в Contact Form 7.

19 окт. 2011 г. 17:54:41
0

CF7 так работать не будет. То, что вы пытаетесь сделать, нужно настраивать на уровне сервера или почтового клиента, а не на уровне приложения в WordPress.

Настройте автоответчик электронной почты на вашем почтовом сервере или в почтовом клиенте.

24 янв. 2012 г. 21:56:54
2

Попробуйте использовать плагин Email Before Download в связке с Download Monitor. Они отлично интегрируются с Contact Form 7, и всё, что вам нужно сделать — выбрать ВЛОЖЕНИЕ (ATTACHMENT) для отправки по email вместо прямой ссылки на скачивание. Работает просто замечательно.

20 сент. 2012 г. 20:44:26
Комментарии

Попробуйте переформатировать ваш ответ с более конкретными деталями.

Brian Fegter Brian Fegter
29 сент. 2012 г. 08:19:32

@aly22, не могли бы вы указать мне правильный источник "email-before-download"

alex alex
17 февр. 2013 г. 21:34:34
1

Извиняюсь за мой плохой английский и ещё более слабые навыки в PHP.

Вы можете использовать плагин email-before-download, но... у меня не получилось заставить его работать так, как я хотел. Я попробовал немного поэкспериментировать с кодом, и, кажется, этот вариант работает. Не самый элегантный способ, но вы можете использовать ссылку на файл в поле вложения в админ-панели. Просто введите там что-то вроде "wp-content/uploads/2013/05/Файл.pdf" (без кавычек) вместо "[file-1234]" и поместите следующий код в ваш functions.php

function mycustom_cf_before_action(&$wpcf7_data) {
    global $mailcounter;
    $mailcounter = 0;
    if ((!empty($wpcf7_data->mail['attachments'])) and (!(0 === strpos($wpcf7_data->mail['attachments'], '['))) ) {
        global $cmail1;
        $cmail1 = '';
        $cmail1 = $wpcf7_data->mail['attachments'];
    }
    if ((!empty($wpcf7_data->mail_2['attachments'])) and (!(0 === strpos($wpcf7_data->mail_2['attachments'], '['))) ) {
        global $cmail2;
        $cmail2 = '';
        $cmail2 = $wpcf7_data->mail_2['attachments'];
    }
}
add_action('wpcf7_before_send_mail', 'mycustom_cf_before_action',1);

function mycustom_wpcf7_mail_components($components){
    global $cmail1;
    global $cmail2;
    global $mailcounter;

    if (($mailcounter == 0) and (!empty($cmail1)) and (empty($components['attachments']))) {
          $components['attachments'][] = $cmail1;
    }
    if (($mailcounter == 1) and (!empty($cmail2)) and (empty($components['attachments']))) {
          $components['attachments'][] = $cmail2;
    }
    $mailcounter = $mailcounter + 1;
    return $components;
}

add_filter( 'wpcf7_mail_components', 'mycustom_wpcf7_mail_components' );

Первая функция проверяет наличие "статических" вложений. То есть любых, которые не начинаются с [ или не пустые.

Вторая функция добавляет статическое вложение при отправке. Я пробовал использовать "uploaded_files", но тогда вложения удалялись. Поскольку компоненты одинаковы для mail1 и mail2, необходимо вести подсчёт. Для этого используется $mailcounter. $cmail1 и $cmail2 нужны для передачи ссылок на вложения в компоненты. На этом этапе CF7 больше не учитывает исходные данные контактной формы, поэтому это было единственное решение, которое я увидел.

3 мая 2013 г. 23:04:43
Комментарии

Это, кажется, больше не работает в версии 5.4. Однако вы можете использовать вместо этого: add_filter( 'wpcf7_mail_components', function($components, $form = null, $mail = null) { $components['attachments'][] = 'PATH_TO_FILE.pdf'; return $components; }, 100, 3 );

Earlee Earlee
2 июн. 2021 г. 08:04:21
0
-3

Я полагаю, это тот самый плагин, о котором идет речь: https://wordpress.org/plugins/email-before-download/

24 июл. 2014 г. 17:34:30