gpt4 book ai didi

php - 如何访问WordPress插件变量/MySQL数据?

转载 作者:行者123 更新时间:2023-11-29 07:23:08 24 4
gpt4 key购买 nike

我有一个插件,它是 woocommerce 的扩展。该插件将信息存储在 MySQL 表“wp_woocommerce_order_itemmeta”下。在“meta_key”列下,有“_wc_deposit_meta”。在“meta_key”列旁边有“meta_value”。在“meta_value”下,您可以找到 a:5:{s:6:"enable";s:3:"yes";s:7:"deposit";d:197.67000000000001591615728102624416351318359375;s:9:"remaining";d:401.32999999999998408384271897375583648681640625;s:5:“总计”;d:599;s:5:“比率”;d:1;}。在学习 PHP 时,我从未遇到过这样的值。有人可以解释一下这个值是什么以及我如何访问“存款”的值。这只是多维数组的另一个例子吗?

我一直在尝试通过我的functions.php中的$my_order = $order->get_items();来访问这个值,它返回一个数组。我看到名为“_wc_deposit_meta”的正确数组,其奇怪的值由于逗号和冒号而我不知道如何访问。

很抱歉提出了菜鸟问题,但我一直在尝试研究此购买,但找不到简单的黑白答案。如果有人能指出我正确的方向,我将非常感激。

最佳答案

当 WordPress 需要将多维数据存储到字段中时,它会应用 PHP 的 serialize()函数将数据转换为可存储的字符串,然后 unserialize()读取值时将其返回到正确的数据结构。

PHP serialize() 文档的第一条评论中描述了序列化数据定义的剖析:

  • String: s:[size]:[value];
  • Integer: i:[value];
  • Double: d:[value];
  • Boolean: b:[value]; (does not store "true" or "false", does store '1' or '0')
  • Null: N;
  • Array: a:[size]:{[key definition];[value definition];(repeated per element)}
  • Object: O:[strlen(object name)]:[object name]:[object size]:{s:[strlen(property name)]:[property name]:[property definition];(repeated per property)}

更具体地说,WordPress 使用它自己的 maybe_serialize()maybe_unserialize()包装器以减少不必要时序列化(取消序列化)的可能性。

在您正在使用的特定序列化数据中,您的存款由键/值定义 s:7:"deposit";d:197.67000000000001591615728102624416351318359375; 表示。要手动更改您的存款值,您需要修改 d: 之后的双倍。要在 WordPress 中以编程方式修改该值,请使用 Metadata API要使用“get”函数(这将隐式反序列化它)查询字段,请修改返回的关联数组中的'deposit'字段的值,然后使用“update”保存新值来自元数据 API 的函数。

关于php - 如何访问WordPress插件变量/MySQL数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35416730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com