it-swarm.com.de

Hinzufügen eines Anhangs zum Kontaktformular mit wp_mail

Wäre jemand so freundlich, mir zu erklären, wie ich eine hochgeladene Datei an eine mit wp_mail generierte E-Mail anhängen kann? Ich habe das Formular erstellt, aber alle Fragen, die ich online finden kann, beziehen sich auf das Anhängen einer vordefinierten Datei anstatt einer vom Benutzer hochgeladenen.

BEARBEITEN Ich versuche jetzt, wp_handle_upload zu verwenden:

if ( ! function_exists( 'wp_handle_upload' ) ) require_once( ABSPATH . 'wp-admin/includes/file.php' );
$uploadedfile = $_FILES['file'];
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $uploadedfile, $upload_overrides );
if ( $movefile ) {
  echo "File is valid, and was successfully uploaded.\n";
  var_dump( $movefile);
} else {
  echo "Possible file upload attack!\n";
}

... aber ich erhalte die folgende Fehlermeldung: "Datei ist leer. Bitte laden Sie etwas Wesentliches hoch ..." Ich denke, das liegt daran, dass ich die Anhangsvariable nicht richtig weitergebe.

Mein Formularfeld sieht folgendermaßen aus:

<input type="file" name="uploaded_picture">

Könnte jemand darauf hinweisen, wie ich diese beiden bitte zusammenbinde?

4
Kevin Nugent

Kurz gesagt, ich habe einfach nicht die richtige Variable übergeben:

if ( ! function_exists( 'wp_handle_upload' ) ) {
    require_once( ABSPATH . 'wp-admin/includes/file.php' );
}

$uploadedfile       = $_FILES['file'];
$upload_overrides   = array( 'test_form' => false );
$movefile           = wp_handle_upload( $uploadedfile, $upload_overrides );

if( $movefile ) {
    //echo "File is valid, and was successfully uploaded.\n";
    //var_dump( $movefile);
    $attachments = $movefile[ 'file' ];
    wp_mail($to, $subject, strip_tags($message), $headers, $attachments);
} else {
    echo "Possible file upload attack!\n";
}

Mein Formularfeld hätte sein sollen:

<input type="file" name="uploaded_file" accept="application/pdf">
3
Kevin Nugent