Не удается добавить более одного вложения в контактную форму 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;, чтобы используйте его как строку, но также не сработало.

Author: Chris, 2018-09-10

1 answers

Я только что понял это, какая-то глупая ошибка. $mail['attachments'] ожидает строку, а не массив. При добавлении нескольких вложений после каждого файла должна быть новая строка, например \n

Для справки см. Контактную форму 7 mail.php файл, расположенный в папке "Включает": https://github.com/wp-plugins/contact-form-7/blob/master/includes/mail.php#L113

 0
Author: Chris, 2018-09-10 13:50:40