致命错误:调用未定义的函数wp_update_user()

时间:2017-02-05 23:24:49

标签: php wordpress

我编写了一个函数来更改成员在响应Membermouse推送通知时的角色。代码失败,并显示消息“致命错误:调用未定义函数wp_update_user()...”。这意味着该函数尚未被调用,但该文件夹位于WP环境中,并由WP插件函数调用。虽然它没有被建议,但我尝试了各种方法来在代码中要求user.php文件(wp_update_user所在的位置)并且没有工作。我不知所措,因为我相信代码写得正确,但我现在还不确定。自定义脚本文件(如下所示)位于根目录中的自定义文件夹中。

<?php 
// Custom script to change a members role to Spectator upon cancellation

if(!isset($_GET["event_type"])) {
    // event type was not found, so exit
    echo "Exit";
    exit;
} else {
    $status = $_GET["status"];
    if($status == 2) {
        $eventType = $_GET["event_type"];
        $user_id  =  $_GET["member_id"];
        $newrole   = "bbp_spectator";
        $user_id   = wp_update_user( array( 
            'ID' => $user_id, 
            'role' => $newrole 
        ) );
        if (is_wp_error($user_id)) {
            // There was an error, probably that user doesn't exist.
            echo "Error";
        } else {
            // Success!
            echo "Role Changed to Spectator";
        }
    }
}

&GT;

2 个答案:

答案 0 :(得分:1)

https://codex.wordpress.org/Plugin_API/Action_Reference。如果你只是在没有设置用户后运行的动作钩子(init是一个好的)时包含,那么就没有用户而且该功能还不存在。

function prefix_my_function_name() {

    //your code


}
add_action( 'init' , 'prefix_my_function_name' );

答案 1 :(得分:1)

我修复了它......我使用了错误的路径来处理require语句。我喜欢网络上的帮助,但各种论坛上的众多回复显示了很多方法。我从未想过要保持简单。我在代码的顶部添加了以下内容:

require_once( “WP-包括/ user.php的”);

之前有类似问题的帖子的所有评论都提出了各种说法相同的方法,但这个方法有效。