You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress中获取已登录用户信息的问题求助

解决方案

先修复你的PHP代码问题

你之前写的PHP代码存在语法错误,所以没有输出。正确写法如下:

<?php 
$current_user = wp_get_current_user();
echo $current_user->user_email; // 直接输出登录用户的邮箱
?>

或者更简洁的写法:

<?php echo wp_get_current_user()->user_email; ?>

你之前的echo '.$userinfo.'是错误的——在PHP标签内部不需要用字符串拼接的方式输出变量,直接写变量名即可。

方法一:把用户邮箱传给JavaScript

如果需要在JS里使用用户邮箱,可以在页面的<script>标签里直接用PHP赋值:

<script>
const currentUserEmail = '<?php echo wp_get_current_user()->user_email; ?>';
// 后续JS逻辑里就能直接用currentUserEmail变量
</script>

也可以添加一个隐藏表单字段,提交表单时一起传递:

<input type="hidden" name="user_email" value="<?php echo wp_get_current_user()->user_email; ?>">

表单提交后,后端处理代码可通过$_POST['user_email']拿到邮箱。

方法二:后端直接处理(推荐,更安全)

其实完全不需要用JS获取邮箱——表单提交逻辑应该放在PHP后端处理。当用户提交表单时,直接在PHP里获取当前登录用户的邮箱,再调用你的发邮件代码:

// 表单提交处理逻辑
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 获取当前登录用户信息
    $current_user = wp_get_current_user();
    $user_email = $current_user->user_email;

    // 调用你的发邮件函数,传入邮箱和PDF内容
    // send_invoice_email($user_email, $pdf_file);
}

这种方式避免前端暴露用户邮箱,安全性更高,也不用JS参与用户信息获取。

方法三:用WordPress REST API获取

如果一定要用JS通过API获取,可调用WordPress自带的/wp-json/wp/v2/users/me端点,已登录用户访问该端点会返回自身详细信息(包含邮箱)。示例JS代码:

fetch('/wp-json/wp/v2/users/me')
    .then(response => response.json())
    .then(data => {
        const userEmail = data.email;
        // 在这里使用邮箱
    })
    .catch(error => console.error('获取用户信息失败:', error));

注意:默认情况下该端点会返回邮箱,若网站修改过REST API权限设置,需确保已登录用户能访问自身信息。

内容的提问来源于stack exchange,提问作者Umar Farooq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 13:35:08