我正在为我的用户个人资料开发评论部分,我正在为用户提供选项,使评论可见或不可用。
我创建了一个数组:
$comment = array($comment_name, $comment_text, $time, $visible);
默认情况下,$ visible是false值。 然后我add_user_meta
add_user_meta($user->ID, 'recommend_comment', $comment);
这对我来说非常合适,我已经显示了一系列评论。 现在我想用$ visible = true来更新数组,如果用户点击按钮但不确定如何使用update_user_meta访问特定的数组行。 我尝试过:
update_user_meta($user->ID, 'recommend_comment', $prikazi, [2]);
但那不起作用。知道如何制作这个吗?
答案 0 :(得分:1)
您可以使用update_user_meta()进行添加和/或更新,请参阅参考:update_user_meta
要更新可见,您可以执行以下操作:
$comment = get_user_meta( $user->ID, 'recommend_comment', TRUE );
if( !empty( $comment ) ) {
$comment[3] = FALSE;
update_user_meta( $user->ID, 'recommend_comment', $comment );
}
为了改善它,您可以改为使用数组中的键,例如:
$comment = array( 'name' => $comment_name, 'text' => $comment_text, 'time' => $time, 'visible' => $visible);
// And then you can access with:
$comment['visible'] = TRUE;
更新:带有评论列表的示例:
$comments = array(
array( 'name' => 'AAA', 'text' => 'Just a comment', 'time' => '12:50', 'visible' => FALSE ),
array( 'name' => 'BBB', 'text' => 'Another one', 'time' => '14:10', 'visible' => TRUE ),
);
// Create/updates the comments
update_user_meta( $user->ID, 'recommend_comment', $comments );
// ...
// Load the comments
$comments = get_user_meta( $user->ID, 'recommend_comment', TRUE );
if( !empty( $comment ) ) {
// then you can manipulate them with:
$comments[1]['visible'] = FALSE;
// and update the meta as before
update_user_meta( $user->ID, 'recommend_comment', $comments );
}
答案 1 :(得分:0)
这对我有用。
//delete_user_meta(get_current_user_id(), 'watchlist');
$new_value = $_GET['id'];
if(empty($new_value)){
echo 'No value';
die();
}
$watchlist = get_user_meta( get_current_user_id(), 'watchlist', true);
if( !empty( $watchlist ) ) {
$check_value = unserialize( $watchlist );
// Check if value exists
if( in_array( $new_value, $check_value ) ){
echo 'Already exists';
}else{
$check_value[] = $new_value;
update_user_meta( get_current_user_id(), 'watchlist', serialize( $check_value ) );
}
}else{
update_user_meta( get_current_user_id(), 'watchlist', serialize( [$new_value] ));
}
print_r(unserialize( $watchlist ));