web-dev-qa-db-ja.com

wp_mailがccおよびbccヘッダーを認識しない

私はWordPress 3.1.3を使っています

Ccヘッダーとbccヘッダーを付けてwp_mailを使用すると、次のような注意が表示されます。

Notice: Undefined variable: cc in /var/www/mysite.info/htdocs/wordpress/wp-includes/pluggable.php on line 349 
Notice: Undefined variable: bcc in /var/www/mysite.info/htdocs/wordpress/wp-includes/pluggable.php on line 352 

これは私がメールヘッダを設定している方法です

$email_headers  = "From: ".$from_field_value.PHP_EOL;
$email_headers .= "Reply-To: ".$from_field_value.PHP_EOL;
$email_headers .= "CC: [email protected]".PHP_EOL;
$email_headers .= "BCC: [email protected]".PHP_EOL;

if (wp_mail($email_to, $email_subject, $email_body, $email_headers)) {
      // Other process
}
1
I-M-JM

あなたが行を見れば通知が発行されています:

$cc = array_merge( (array) $cc, explode( ',', $content ) );

そして

$bcc = array_merge( (array) $bcc, explode( ',', $content ) );

それがしようとしているのはあなたのヘッダによって作成された配列と設定されていない空の配列をマージすることです。

その通知は無視することができます。結局のところ、それは単なる通知です。

この関数はプラガブルなので、あなたはその関数をコピーしてプラグインファイルに入れてコードを修正することができます。そのようにあなたはコアファイルを編集していません。プラガブル関数を参照してください。

http://codex.wordpress.org/Pluggable_Functions

コードを次のように修正します。

case 'cc':
    if (!isset($cc))
        $cc = array();
    $cc = array_merge( $cc, explode( ',', $content ) );
break;
case 'bcc':
    if (!isset($bcc))
        $bcc = array();
    $bcc = array_merge( $bcc, explode( ',', $content ) );
break;

多分これはwordpressのコア開発チームに報告する必要がありますか?

更新:

上記はWP3.2 で修正されます。http://core.trac.wordpress.org/changeset/18006

1
Brady