[英]How to update meta value using update_user_meta in WordPress?
我已经创建了一个名为“etime”的元密钥,用于存储学生参加在线考试的首选时间。 该字段由我的子主题的 function.php 文件中的 function 创建,并且该字段接受来自我网站注册表的输入。
现在我需要在 WordPress 的 edit-user.php 文件中包含相同的字段,以使学生能够编辑他们的时间偏好。
我尝试使用此代码,但它不起作用。 它不会根据 meta_key“etime”更新 meta_value。
<select name="newetime">
<option value="9">6 am - 9 am</option>
<option value="12">9 am - 12 noon</option>
<option value="15">12 noon - 3 pm</option>
<option value="18">3 pm - 6 pm</option>
<option value="21">6 pm - 9 pm</option>
<option value="24">9 pm - 12 am</option>
</select>
<?php
$etime = get_user_meta( $current_user->ID, 'etime', true);
$newetime = $_POST['newetime'];
update_user_meta( $current_user->ID, 'etime', $etime);
?>
将以下内容添加到 PHP 的开头
$current_user = wp_get_current_user();
或使用get_current_user_id()
代替$current_user->ID
下拉菜单
要在下拉列表中显示当前选项,您需要执行以下操作:
<?php $etime = get_user_meta( get_current_user_id(), 'etime', true); ?>
<select name="newetime">
<option value="9" <?php selected( $etime, 9 ); ?>>6 am - 9 am</option>
<option value="12" <?php selected( $etime, 12 ); ?>>9 am - 12 noon</option>
<option value="15" <?php selected( $etime, 15 ); ?>>12 noon - 3 pm</option>
<option value="18" <?php selected( $etime, 18 ); ?>>3 pm - 6 pm</option>
<option value="21" <?php selected( $etime, 21 ); ?>>6 pm - 9 pm</option>
<option value="24" <?php selected( $etime, 24 ); ?>>9 pm - 12 am</option>
</select>
安全考虑
黑客可以发送他们想要的任何数据作为新的时间。 最好将其转换为 int。
$newetime = (int)$_POST['newetime'];
然后您甚至不必担心接收脏数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.