我正在使用WooCommerce,并希望获得专门针对该产品的 meta密钥,例如。价格、颜色等。但问题是,我不想得到所有的 meta密钥,但只有那些需要的。例如,我不需要_edit_last
,_edit_lock
,_wc_review_count
...并且仅需要price
和color
(作为示例)。如果它是一个不重要的网页,但我不想在网页上显示它们,但我想将它们作为json发送到其他地方。因此,数据必须经过过滤。顺便说一句,它是在插件,我想与他人分享,所以我不能/不应该访问他们的WooCommerce API。
我的代码获取所有 meta键(但我只想要其中的一部分):
$attributes = get_post_meta($product->get_id());
foreach($attributes as $key => $value) {
$result['products'][$p]['attributes'][$key] = $value[0];
}
上面代码的结果是:
[attributes] => Array
(
[_edit_last] => 1
[_edit_lock] => 1594817821:1
.
.
.
)
但我想
[attributes] => Array
(
[price] => 1000
[color] => 'red'
.
.
.
)
3条答案
按热度按时间carvr3hs1#
有多种方式取决于你想要的:
1).您需要在WC_Product对象上使用
WC_Product
methods来获取产品属性:2).对于特定或自定义的产品 meta数据,您将使用
WC_Data
方法get_meta()
,并使用所需的元密钥,如:3).您可以在
WC_Product
对象上使用WC_Data
方法get_data()
来获取数组中未受保护的 meta数据:你会得到类似(extract)的东西:
pqwbnv8z2#
有两种方法可以做到这一点,一种是在foreach循环中手动过滤元数据数组,另一种是对wp_postmeta表进行自定义查询以获得特定的键。
h4cxqtbf3#
这里是Woocommerce代码参考关于如何从每个产品中获取元数据。
此外,下面是如何通过键获取元数据的示例:
}