在PHP Foreach Loop之外使用变量 [英] Using a variable outside PHP Foreach Loop

查看:145
本文介绍了在PHP Foreach Loop之外使用变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在foreach循环之外输出用户名和用户电子邮件。我正在尝试向所有WordPress用户发送一封电子邮件到一定的用户角色。

I am trying to output a username and user email outside of a foreach loop. I am trying to send an email to all WordPress users that are within a certain User Role.

这是我的代码:

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

    foreach ( $users as $user ) :       
        $user_name  = $user->user_email;
        $user_email = $user->display_name;          
    endforeach;

所以我可以在页面的其他区域使用它们,即:。

So I can then use them in other areas of the page, ie:.

echo 'Hello, ' . $user_name;
echo 'Send to: ' .$user_email;

我已打印出包含以下内容的$ users数组:

I've printed out the $users array which contains the following:

Array
(
    [0] => WP_User Object
        (
            [data] => stdClass Object
                (
                    [ID] => 46
                    [user_login] => huw
                    [user_pass] => u7CqxbuQDvApUAF6tT.
                    [user_nicename] => huw
                    [user_email] => huw@xxxx.co.uk
                    [user_url] => 
                    [user_registered] => 2017-02-06 11:13:09
                    [user_activation_key] => 1486379590:$P$BkisA4T5j1S/ZjRageafNYHfsdin1S0
                    [user_status] => 0
                    [display_name] => Huw Daniel Rowlands
                )

            [ID] => 46
            [caps] => Array
                (
                    [sssg] => 1
                    [new_role] => 1
                    [site_member] => 1
                    [test_role] => 1
                )

            [cap_key] => jciw_capabilities
            [roles] => Array
                (
                    [0] => sssg
                    [1] => new_role
                    [2] => site_member
                    [3] => test_role
                )

            [allcaps] => Array
                (
                    [read] => 1
                    [sssg] => 1
                    [new_role] => 1
                    [site_member] => 1
                    [test_role] => 1
                )

            [filter] => 
        )

    [1] => WP_User Object
        (
            [data] => stdClass Object
                (
                    [ID] => 308
                    [user_login] => jeremy
                    [user_pass] => LLOKbkPOWQsBKUIk2qL1
                    [user_nicename] => magnus
                    [user_email] => jeremy@gmail.com
                    [user_url] => 
                    [user_registered] => 2017-05-03 19:24:42
                    [user_activation_key] => 1493839482:$P$BI/IYldCzsXZowLEiNfxiUkIwVdDKV0
                    [user_status] => 0
                    [display_name] => Jeremy
                )

            [ID] => 308
            [caps] => Array
                (
                    [new_role] => 1
                    [sssg] => 1
                    [site_member] => 1
                )

            [cap_key] => jciw_capabilities
            [roles] => Array
                (
                    [0] => new_role
                    [1] => sssg
                    [2] => site_member
                )

            [allcaps] => Array
                (
                    [read] => 1
                    [new_role] => 1
                    [sssg] => 1
                    [site_member] => 1
                )

            [filter] => 
        )

)


推荐答案

如果您想向所有具有特定角色的用户发送电子邮件,请尝试以下操作:

If you want to send an email to all users with a certain role, try something like this:

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

$users = get_users($user_args); 

foreach ( $users as $user ) :       
    $user_email  = $user->user_email;
    $user_name = $user->display_name;
    send_email($user_name, $user_email);          
endforeach;

然后编写您的电子邮件功能:

And then write your email function:

function send_email($name, $email) {
    // Do email sending stuff here with $name & $email
}

这篇关于在PHP Foreach Loop之外使用变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆