WordPress update_user_meta确实适用于变量

时间:2018-11-29 08:32:01

标签: php wordpress

我正在尝试通过调用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”

谁能说出这些调用变量与静态文本的区别?

2 个答案:

答案 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 的操作,否则记录非活跃用户)。