在不删除以前的值的情况下向用户添加值?

时间:2018-06-04 作者:joq3

如何向键添加值dismissed_wp_pointers 不删除现有值(如果有)。

这样做会将价值放在那里,但首先会删除所有现有的东西。

function reset_after_customize() {
    $user_id = get_current_user_id();
    update_user_meta( $user_id, \'dismissed_wp_pointers\', \'welcome_tour\' );
}
我不知道如何将该值添加到现有值/值中。

1 个回复
SO网友:Krzysiek Dróżdż

update_user_meta( int $user_id, string $meta_key, mixed $meta_value, mixed $prev_value = \'\' ) 基于更新现有用户元user_id 和元键。如果有许多字段具有相同的键,则可以传递“prev\\u value”来告诉要更新的字段。

add_user_meta( int $user_id, string $meta_key, mixed $meta_value, bool $unique = false ) 向用户添加元数据。最后一个参数是unique 它告诉您是否不应添加相同的键(默认值为false,将创建许多字段)。

另一方面,如果要将列表o值存储为一个元,则必须使用数组或逗号分隔的列表。

如果我们讨论的是废弃的指针,那么我们要使用逗号分隔的列表,因为how WP stores the pointers:

$dismissed = array_filter( explode( \',\', (string) get_user_meta( get_current_user_id(), \'dismissed_wp_pointers\', true ) ) );

if ( ! in_array( $new_pointer, $dismissed ) ) {
    $dismissed[] = $new_pointer;
    $dismissed = implode( \',\', $dismissed );

    update_user_meta( get_current_user_id(), \'dismissed_wp_pointers\', $dismissed );
}

结束