JSON格式的用户元数据,仅部分更新数据

时间:2021-04-02 作者:Elv1s

将JSON数据保存为wp\\u usermeta表中用户的meta\\u值。JSON数据如下所示:

{
    "user":5,
    "levels":{
        "1":{"first_seen":1614309493,"last_seen":1617368469},
        "2":{"first_seen":1616309493,"last_seen":1617369479},
        "3":{"first_seen":1617309493,"last_seen":1617379121}
        }
}
“The”;“第一次看到”;值(每个级别/id)保存后不应更改。“The”;“上次看到”;每次都应更新值。

我用它来保存钩子启动时的数据。这一点——在尚未保存数据的情况下,按用户保存数据是可行的。但仅更新;“上次看到”;一旦用户已经拥有数据,价值就是我正在努力解决的问题。

甚至可以使用;添加\\u user\\u meta“;和/或;更新\\u user\\u meta“;是否部分更新值?如果没有,是否有其他解决方案来实现这一点?

我很确定我看到了一个使用JSON处理这个问题的插件,但我记不起它的名字了。。。

希望你能帮助我!非常感谢。

update:正如Vancode所指出的,我还尝试使用get\\u user\\u meta来获取数据,更改;“上次看到”;零件并再次将其保存到数据库中。

然而,这主要是获取和;更改;“上次看到”;不幸的是,我仍然在挣扎。。。

1 个回复
SO网友:vancoder

您不能使用update_user_meta 在这里它自己。你需要get_user_meta 首先,将json解码为一个数组,更新last_seen 数组的元素,然后对其重新编码update_user_meta.

除非有充分的理由不这样做,否则我会考虑将这些数据保存为序列化数据(以避免json步骤),或者甚至将数据重组为更细粒度,将每一位保存在自己的记录中,例如使用1_1_first_seen, 1_1_last_seen (其中第一个数字是用户ID,第二个数字是级别)等等,如果没有这些,如果你需要以任何详细的方式查询这些数据,那么你的生活将非常艰难。

相关推荐

在插件中,如何使用AJAX更新JSON文件

Context学习插件创建,我想在用户每次单击div外部时保存div的内容。简而言之,其目的是创建记事本的文本备份。我在当地工作。Steps<有些文本是用div编写的(感谢Trumbowyg.js)</在div blur事件中,插件使用ajax发送内容数据</插件函数打开一个json文件,并用新文本更新其内容Issues几个我想我在第三步受阻了。几个小时的信息搜索让我不知所措。Update我尝试使用wp\\u remote\\u get()而不是file\\u get\\u conten