如何从REST API获取用户电子邮件(和其他数据)?

时间:2017-09-02 作者:Johan Dahl

如何使用REST API从用户那里获取电子邮件地址?我正在使用nonce进行身份验证,它似乎起到了作用,因为我可以发布请求和更改内容。我必须添加一些东西才能返回所有用户信息吗?

这是我的JS:

(function($) {

    var nonce       = WPsettings.nonce;
    var rest_url    = WPsettings.rest_url;

    $.ajax( {
        url: rest_url + \'users/\',
        dataType: "json",
        beforeSend: function ( xhr ) {
            xhr.setRequestHeader( \'X-WP-Nonce\', nonce );
        }
    } )
   .done( function ( response ) {
        console.log( response );
    } );

})(jQuery);

3 个回复
最合适的回答,由SO网友:Mostafa Soufi 整理而成

您应该在输出中添加电子邮件字段。

使用下面的挂钩functions.php 在当前主题中:

register_rest_field( \'user\', \'user_email\',
    array(
        \'get_callback\'    => function ( $user ) {
            return $user[\'email\'];
        },
        \'update_callback\' => null,
        \'schema\'          => null,
    )
);
但是,不推荐!因为每个人都可以看到电子邮件。

SO网友:big_water

如果您在使用Mostafa的答案获取电子邮件时遇到问题,我最好将电子邮件检索改为:

register_rest_field( \'user\', \'user_email\',
                        array(
                            \'get_callback\'    => function ( $user ) {
                                return get_userdata($user[\'id\'])->user_email;
                            },
                            \'update_callback\' => null,
                            \'schema\'          => null,
                        )
                    );

SO网友:Mohammed

我想你可以返回当前用户的电子邮件,

register_rest_field( \'user\', \'user_email\',
    array(
        \'get_callback\'    => function ( $user ) {
            return wp_get_current_user()->user_email;
        },
        \'update_callback\' => null,
        \'schema\'          => null,
    )
);

结束

相关推荐

Contact form sender email

我在Google上花费了大量的时间,却找不到解决方案。我正在使用Wordpress,我想找到一些插件或任何其他解决方案,可以做到以下几点:当用户在我的网站上发送联系人表单时,我会在我的Gmail上收到它,但发件人电子邮件是默认的Wordpress电子邮件。我想如果发件人的电子邮件可以是他们在联系表格中输入的电子邮件地址。所以,如果[email protected]给我发一份联系表格,如果我能收到[email protected],而不是来自[email protected].我希望这可以通过这样或那样的方式