我编写了一个函数来更改成员在响应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;
答案 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的”);
之前有类似问题的帖子的所有评论都提出了各种说法相同的方法,但这个方法有效。