2017-05-01 15 views
1

私はフロントエンドフォームを持っており、特定のユーザロール内のすべてのユーザに電子メールを送信します。それは問題なく送信されますが、電子メール自体の中では、最後のユーザーの名前(ユーザー役割内のユーザーの一覧から)、すべての受信者の電子メールが印刷されます。ワードプレスでwp_mail()に各ユーザ名を追加

誤って設定した配列や変数とは関係があります。どのユーザーがどのように電子メールを受信し、正しい名前がそれらのために印刷されるかについて、どんな助けも評価されるでしょう!ここで

は私のコードです:

// Get users and their roles. 
$user_args = array(
'role__in' => 'test_role', 
'orderby' => 'user_nicename', 
'order' => 'ASC' 
); 

$users = get_users($user_args); 

$user_name_list = array(); 

foreach ($users as $user) : 
    $user_email_list[] = $user->user_email; 
    $user_name_list[] = $user->display_name; 
endforeach; 

$user_name = $user_name_list; 

// This is part of the code that adds their username to the email content. 
$body = '<p style="margin-bottom: 20px;">Hello ' . $user_name . ',</p>'; 
+0

回答:http://stackoverflow.com/questions/43833428/using-a-variable-outside-php-foreach-loop –

答えて

0

私はあなたの代わりに、実際には配列を印刷している、コードを変更しました。

// Get users and their roles. 
$user_args = array(
'role__in' => 'test_role', 
'orderby' => 'user_nicename', 
'order' => 'ASC' 
); 

$users = get_users($user_args); 

$user_name_list = array(); 

foreach ($users as $user) : 
    $user_email_list[] = $user->user_email; 
    $user_name_list[] = $user->display_name; 

    $user_info = get_userdata($user-> ID); 
    $username = $user_info->user_login; 
    $first_name = $user_info->first_name; 
    $last_name = $user_info->last_name; 

endforeach; 

$user_name = $user_name_list; 

// This is part of the code that adds their username to the email content. 
$body = '<p style="margin-bottom: 20px;">Hello ' . $user_name . ',</p>'; 

役立つことがあります。

+0

申し訳ありません。 アレイ ( [0] =>人と一 [1] =>人つ [2] =>人三 [3] =>人フォー [4] =>人:私の配列は次のようにプリントアウト5 ) あなたのコードで私はPerson Oneを手に入れました –

+0

名前と姓を取得するようにコードを更新しましたが、すべてのユーザー情報をメールで送信したいのかどうかは分かりません。 –

関連する問題