2016-03-23 6 views
0

Ich möchte eine E-Mail mit Anhang mit WordPress 'wp_mail-Funktion senden.So senden Sie wp_mail mit Anhang (Dateipfad in Variable)

Mit dieser Funktion funktioniert es gut, um E-Mails zu senden, aber der Anhang ist nicht da, wenn ich meine E-Mail überprüfe.

function dd_send_email(){ 

    $dd_path = $_POST['upload_image']; 
    // echo $dd_path; 

    $email_sent = false; 

    // get email template data 
    $email_template_object = dd_get_current_options(); 


    // if email template data was found 
    if (!empty($email_template_object)): 

     // setup wp_mail headers 
     $wp_mail_headers = array('Content-Type: text/html; charset=UTF-8'); 
     $mail_attachment = $dd_path; 

     // use up_mail to send email 
     $email_sent = wp_mail(array('[email protected]') , $email_template_object['dd_emne_forhaandsbestilling'], $email_template_object['dd_email_text_forhaandsbestilling'], $wp_mail_headers, $mail_attachment); 

    endif; 

    return $email_sent; 

} 

Die Variable $dd_path (so etwas wie: http://localhost/norskeanalyser/wp-content/uploads/Testanalyse-2.pdf) enthält den Pfad der Datei, die ich aus den Medien Uploader in einer anderen Funktion laden Sie.

Danke für Ihre Hilfe!

Antwort

0

Ich habe die Antwort selbst gefunden. Weil wp_mail den Dateipfad wie folgt benötigt/uploads/2016/03/example.jpg müssen wir unsere URL in einen Pfad wie diesen konvertieren.

Ich tat dies achive durch folgende Maßnahmen und dachte, dass ich es mit Ihnen teilen können:

// change url to path 
    $dd_url = $_POST['upload_image']; 
    $dd_path = parse_url($dd_url); 

    // cut the path to right directory 
    $array = explode("/norskeanalyser/wp-content", $dd_path['path']); 
    unset($array[0]); 
    $text = implode("/", $array); 

und dann habe ich die $text in $mail_attachment speichern und nannte es in wp_mail wie oben.

Verwandte Themen