我正在尝试通过调用update_user_meta()
函数来更新用户的元数据,但是不是更新值,而是将其在数据库中设置为 null 。
此外,该值将被设置为 null ,即使它具有与该meta_key
相同的值。
奇怪的是,如果我传递静态文本,例如update_user_meta()
可以正常工作。 MyValue”而不是变量。
$phone = $_POST["PHONENUMBER"]; //has value 12345
$current_user = wp_get_current_user();
echo 'Updating phone to value: ' . $phone . ' </br>';
//Output is "Updating phone to value: 12345"
//This will set lc-phone value to NULL even if the old value would have been 12345.
update_user_meta($current_user->ID, 'lc-phone', $phone);
//this will update the lc-phone value to 12345
update_user_meta($current_user->ID, 'lc-phone', '12345');
我还在update_metadata()
的{{1}}函数中添加了以下调试代码。
meta.php
但是两种情况下的输出都是:string(5)“ 12345”
谁能说出这些调用变量与静态文本的区别?
答案 0 :(得分:0)
在更新数据库之前,应检查$ _POST值。
original
验证表单始终非常重要:) 如果$ _POST = null,则表示未设置$ _POST。
答案 1 :(得分:0)
为什么不使用Class Graph:
def __init__():
#I init some variables
def input_function():
#I input the function
def input_dimensions():
#I input the dimensions
def draw_grid():
#I draw the x and y axis with graduation
#Should I put a mainloop() here ?
def draw_function():
#I draw the function
#Should I put a mainloop()here ?
def main():
Graph.input_function():
Graph.input_dimensions():
Graph.draw_grid():
Graph.draw_function():
#Should I put a mainloop() here ?
Graph.main():
#Should I put a mainloop() here ?
而不是wp_get_current_user()
?
因此:
global $current_user;
您可能要清理输入(安全预防措施;显然与所面临的挑战无关),并检查以确保当前用户已登录(只有这样,您才应执行global $current_user;
$phone = $_POST["PHONENUMBER"]; //has value 12345
//$current_user = wp_get_current_user();
// and the rest of your code
的操作,否则记录非活跃用户)。