从 WooCommerce 中的 post 元数组变量值中获取特定值
Get specific value from a post meta array variable value in WooCommerce
我正在尝试获取 wordpress wp_postmeta 数据库中“键”的值。
我在数据库中设置了这个。
postId: xxxx
元密钥: _sco_post_data
元值: a:5:{s:15:"billing_country";s:2:"SE";s:16:" =55=]";s:5:"99999";s:14:"order_comments";s:14:"fdsfdafasdfasf";s:18:"dtwc_delivery_date";s:10: "2020-10-06";s:18:"dtwc_delivery_time";s:5:"19:30";}
现在,在我的 functions.php 中,我只想获取 'dtwc_delivery_date' 和 'dtwc_delivery_time' 的特定值。我试过了,但我唯一能做到的就是把它们放在一个 foreach 循环中。
function my_function( $order_id ) {
$order = wc_get_order( $order_id );
$meta = $order->get_meta('_sco_post_data'); //this returns an array
foreach ( $meta as $item ) {
echo '<p><strong>'.__('Test Value').':</strong> ' . $item. '</p>';
}
以上代码运行结果如下:
测试值:SE
测试值:99999
测试值:fdsfdafasdfasf
测试值:2020-10-06
测试值:19:30
我希望能够像这样调用值:
$meta['dtwc_delivery_date'] 但这 return 什么都没有。它是空的。
通常 $meta['dtwc_delivery_date']
应该可以工作……现在您可以在数组上使用 print_r()
函数来查看它是如何构建的,并使用带有索引(键)的 foreach 循环来检查键并看看它是否会像您期望的那样工作:
function my_function( $order_id ) {
$order = wc_get_order( $order_id ); // Order object
$values = $order->get_meta('_sco_post_data'); // get meta value (array)
// Raw formatted output from the array to check how comes the data
echo '<pre>'. print_r( $obj, true ) . '</pre>';
// The loop
foreach ( $values as $key => $value ) {
// displaying array raw formatted output (and checking if you can get a value from its key
echo '<p>Key: '. $key . ' | Value: '. $value . ' | Value from the key: '. $values[$key] . '<p>';
}
}
这应该对你有帮助。
我正在尝试获取 wordpress wp_postmeta 数据库中“键”的值。
我在数据库中设置了这个。
postId: xxxx
元密钥: _sco_post_data
元值: a:5:{s:15:"billing_country";s:2:"SE";s:16:" =55=]";s:5:"99999";s:14:"order_comments";s:14:"fdsfdafasdfasf";s:18:"dtwc_delivery_date";s:10: "2020-10-06";s:18:"dtwc_delivery_time";s:5:"19:30";}
现在,在我的 functions.php 中,我只想获取 'dtwc_delivery_date' 和 'dtwc_delivery_time' 的特定值。我试过了,但我唯一能做到的就是把它们放在一个 foreach 循环中。
function my_function( $order_id ) {
$order = wc_get_order( $order_id );
$meta = $order->get_meta('_sco_post_data'); //this returns an array
foreach ( $meta as $item ) {
echo '<p><strong>'.__('Test Value').':</strong> ' . $item. '</p>';
}
以上代码运行结果如下: 测试值:SE
测试值:99999
测试值:fdsfdafasdfasf
测试值:2020-10-06
测试值:19:30
我希望能够像这样调用值:
$meta['dtwc_delivery_date'] 但这 return 什么都没有。它是空的。
通常 $meta['dtwc_delivery_date']
应该可以工作……现在您可以在数组上使用 print_r()
函数来查看它是如何构建的,并使用带有索引(键)的 foreach 循环来检查键并看看它是否会像您期望的那样工作:
function my_function( $order_id ) {
$order = wc_get_order( $order_id ); // Order object
$values = $order->get_meta('_sco_post_data'); // get meta value (array)
// Raw formatted output from the array to check how comes the data
echo '<pre>'. print_r( $obj, true ) . '</pre>';
// The loop
foreach ( $values as $key => $value ) {
// displaying array raw formatted output (and checking if you can get a value from its key
echo '<p>Key: '. $key . ' | Value: '. $value . ' | Value from the key: '. $values[$key] . '<p>';
}
}
这应该对你有帮助。