尝试更新wordpress用户元时的两个问题

时间:2014-08-17 20:47:06

标签: php wordpress forms post switch-statement

我有一个将数据提交到php脚本的表单。以下是脚本中的一些代码。

foreach ($newuser_values as $key => $value) {
        echo $key;
        echo $value;
            switch ($key) {
                case "show_name":
                    echo "1";
                    switch ($value) {                       
                        case "first":
                        $update_val = $current_user->user_firstname;
                        break;
                        case "first_initial":
                        echo "HI";
                        $update_val = $current_user->user_firstname . " " . substr($current_user->user_lastname,0,0) . ".";
                        break;
                        case "first_last":
                        $update_val = $current_user->user_firstname . " " . $current_user->user_lastname;
                        break;
                        default:
                        echo "HELLO";
                        $update_val = $user_identity;
                    }
                    echo $update_val;
                    update_user_meta($user_ID, $show_name, $update_val);
                    echo get_user_meta($user_ID, $show_name);
                    ...
             }
        }

$ newuser_values是一个表单信息数组。我明白这样:

$newuser_values = $_POST['edit-profile'];

我这里有两个问题。它们都可以从脚本输出的开头看到(来自echo语句)。脚本输出为:

show_namefirst_intital1HELLOtestuser1Array

问题1:正如您所看到的,脚本打印出一个1表示它正在进入标题为" show_name" $ key上的开关。但是,它没有进入名为" first_intial" $ value的开关。这是为什么?

问题2:无论如何,脚本在$ value上输入开关的默认情况并打印HELLO。然后,它打印$ update_val,它是testuser1。但是,该值未分配给user_meta,因为它正在打印"数组"。这是为什么?

提前致谢。如果这些问题过于简单,我道歉。我对wordpress和web开发都很陌生。

2 个答案:

答案 0 :(得分:0)

您的第一个问题的原因似乎是拼写错误。您写道,您的脚本打印

show_namefirst_intital1HELLOtestuser1Array

所以看起来有一个拼写错误,因为当您检查切换案例时,$ value的值是“ first_intital ”而不是“ first_initial ”。

答案 1 :(得分:0)

没关系,我想出了第二个问题。

而不是:

update_user_meta($user_ID, $show_name, $update_val);

应该是这样的:

update_user_meta($user_ID, "show_name", $update_val);