web-dev-qa-db-fra.com

Impossible d'ajouter plus d'une pièce jointe au formulaire de contact 7

J'utilise le formulaire de contact 7 sur notre site Web pour permettre aux personnes de réserver un événement. Une fois leur réservation effectuée, ils recevront un fichier ICS et un ticket au format PDF. J'utilise le crochet wpcf7_before_send_mail pour modifier le courrier électronique envoyé à l'utilisateur une fois la réservation effectuée.

Tout fonctionne bien, je peux ajouter une pièce jointe et cela fonctionne, mais dès que j'ajoute plusieurs pièces jointes, cela ne fonctionne pas.

J'ai également confirmé, aucune erreur dans mon code.

Voici mon code:

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"); 

J'ai également essayé de remplacer ce $mail['attachments'][] = $ics; par $mail['attachments'] .= $ics; pour l'utiliser comme chaîne, mais cela ne fonctionnait pas non plus.

1
Chris

Je viens de comprendre, une sorte d'erreur stupide. $mail['attachments'] attend une chaîne et non un tableau. Lors de l'ajout de plusieurs pièces jointes, chaque fichier doit comporter une nouvelle ligne, p. Ex. \n

Pour référence, voir le formulaire de contact 7 mail.php dans le dossier includes: https://github.com/wp-plugins/contact-form-7/blob/master/includes/mail .php # L113

0
Chris