我被难住了。出于某种原因,一个非常好且简单的AJAX功能(将用户的电子邮件地址公开给前端)在一个安装中适用于非管理员,但在另一个安装中不适用。我已经用PHP和Ajax验证了代码的准确性。我正在正确地注册、本地化和排队脚本。它适用于管理员,但不适用于非管理员。
我已经检查并禁用了所有插件,以确定某种插件冲突。我回到了2019年的主题。这一切都无济于事。
我正在使用一些插件,这些插件可能会影响订阅服务器的功能,但我无法确定具体哪些功能可能会受到影响。
有什么建议吗?
编辑:以下是PHP:
add_action( "wp_ajax_get_user_email", "get_user_email" );
add_action( "wp_ajax_nopriv_get_user_email", "get_user_email" );
function get_user_email() {
$user_id = get_current_user_id();
$user_info = get_userdata($user_id);
$email_address = $user_info->user_email;
echo $email_address;
wp_die();
}
以下是JS:
jQuery( document ).ready( function( $ ) {
var data = {
"action": "get_user_email",
};
jQuery.post(ajax_object.ajax_url, data, function(response) {
console.log("Email: " + response);
});
});
我已经考虑过使用RESTAPI作为替代。过去我很快就解决了这个问题,非常令人沮丧。