From 0f0646eda023990fad5d20d9356c491001a2129f Mon Sep 17 00:00:00 2001 From: johnjamesjacoby Date: Thu, 5 Jan 2023 10:49:16 +0000 Subject: [PATCH] Mail: allow custom attachment filenames in `wp_mail()`. Previous to this change, attachment filenames in outgoing emails could only ever be derived from their paths (passed in as a numerically indexed array of `$attachments`). This changeset adds support for passing an associative `$attachments` array, where the key strings will be used as filenames instead. Includes 2 new unit tests to ensure both array formats continue to work as intended. Props johnjamesjacoby, ritteshpatel, swissspidy, syntaxart. Fixes #28407. Built from https://develop.svn.wordpress.org/trunk@55030 git-svn-id: http://core.svn.wordpress.org/trunk@54563 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/pluggable.php | 6 ++++-- wp-includes/version.php | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/wp-includes/pluggable.php b/wp-includes/pluggable.php index 3f9304c711..6ecd672706 100644 --- a/wp-includes/pluggable.php +++ b/wp-includes/pluggable.php @@ -517,9 +517,11 @@ if ( ! function_exists( 'wp_mail' ) ) : } if ( ! empty( $attachments ) ) { - foreach ( $attachments as $attachment ) { + foreach ( $attachments as $filename => $attachment ) { + $filename = is_string( $filename ) ? $filename : ''; + try { - $phpmailer->addAttachment( $attachment ); + $phpmailer->addAttachment( $attachment, $filename ); } catch ( PHPMailer\PHPMailer\Exception $e ) { continue; } diff --git a/wp-includes/version.php b/wp-includes/version.php index b3dd239c85..bb6c9152fd 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.2-alpha-55029'; +$wp_version = '6.2-alpha-55030'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.