Не удается добавить более одного вложения в контактную форму 7 [закрыто]
Я использую контактную форму 7 на нашем веб-сайте для людей, чтобы забронировать мероприятие. После бронирования они получат файл ICS и билет в формате PDF. Я использую крючок wpcf7_before_send_mail
, чтобы изменить электронное письмо, которое отправляется пользователю после бронирования.
Все работает нормально, я могу добавить вложение, и оно работает, но как только я добавляю более одного вложения, оно не работает.
Я также подтвердил, что в моем коде нет ошибок.
Вот мой код:
add_attachments_before_send($WPCF7_ContactForm)
{
$wpcf = WPCF7_ContactForm::get_current();
$submission = WPCF7_Submission::get_instance();
if ($submission)
{
// This generates the ICS file and returns as a file path
$ics = generateICS( $pID, $dts, $dte, $venue );
// This generates the event ticket file and also returns as a file path
$ticket = generate_event_ticket( $pID, $dts, $venue, $name );
$mail = $wpcf->prop('mail_2');
if ($ics)
{
$mail['attachments'][] = $ics;
}
if ($ticket)
{
$mail['attachments'][] = $ticket;
}
$wpcf->set_properties(array(
'mail_2' => $mail
));
return $wpcf;
}
}
add_action("wpcf7_before_send_mail", "add_attachments_before_send");
Я также попытался заменить это $mail['attachments'][] = $ics;
на $mail['attachments'] .= $ics;
, чтобы используйте его как строку, но также не сработало.
1 answers
Я только что понял это, какая-то глупая ошибка. $mail['attachments']
ожидает строку, а не массив. При добавлении нескольких вложений после каждого файла должна быть новая строка, например \n
Для справки см. Контактную форму 7 mail.php файл, расположенный в папке "Включает": https://github.com/wp-plugins/contact-form-7/blob/master/includes/mail.php#L113