如何解决Woocommerce-通过产品ID获取元数据
我希望按与当前用户相关联的产品ID返回每个订单的所有元数据。我尝试了各种返回空数组的方法。我想访问ID,键和值元数据
有人建议我要去哪里错吗?谢谢
# A tibble: 5 x 10
# Rowwise: trans_id
trans_id name Yr2020 Yr2019 Yr2018 Yr2017 Yr2016 Yr2015 Yr2014 Sum
<int> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 A 100 10 1 1000 20 200 2000 3320
2 2 B 200 20 2 2000 30 300 3000 5530
3 3 C 300 30 3 3000 40 400 4000 7740
4 4 D 400 40 4 4000 50 500 5000 9950
5 5 E 500 50 5 5000 60 600 6000 12160
上面的查询返回下面正确的订单ID。
$table_posts = $wpdb->prefix . "posts";
$table_items = $wpdb->prefix . "woocommerce_order_items";
$table_itemmeta = $wpdb->prefix . "woocommerce_order_itemmeta";
$orders_statuses = "'wc-completed','wc-processing','wc-on-hold'";
$orders_ids = $wpdb->get_col("
SELECT $table_items.order_id
FROM $table_itemmeta,$table_items,$table_posts
WHERE $table_items.order_item_id = $table_itemmeta.order_item_id
AND $table_items.order_id = $table_posts.ID
AND $table_posts.post_status IN ( $orders_statuses )
AND $table_itemmeta.meta_key LIKE '_product_id'
AND $table_itemmeta.meta_value LIKE '$product_id'
ORDER BY $table_items.order_item_id DESC"
);
我遍历所有订单
Array
(
[0] => 881
[1] => 708
)
这是我使用上面这段代码的输出
foreach ($orders_ids as $key => $value) {
$orders = wc_get_order($value);
foreach ($orders->get_items() as $item ){
$item_meta = $item->get_meta();
$item_meta_data = $item->get_meta_data();
$item_formatted_data = $item->get_formatted_meta_data();
$item_formatted_data_true = $item->get_formatted_meta_data( '_',true );
print_r($item_meta); // returns empty array
print_r($item_meta_data); // returns example below
print_r($item_formatted_data); // returns empty array
print_r($item_formatted_data_true); // returns empty array
}
}
解决方法
找到了答案。在循环中使用此代码
foreach ($orders_ids as $key => $value) {
$orders = wc_get_order($value);
foreach ($orders->get_items() as $item ){
$item_meta_data = $item->get_meta_data();
$item_key_meta = $item_meta_data[0]->value; <- add code
print_r($item_key_meta);
}
}
返回
Array
(
[from] => 1603152000
[to] => 1603411200
[duration] => 3
[person_types] => Array
(
)
[booking_services] => Array
(
)
[booking_service_quantities] => Array
(
)
[_added-to-cart-timestamp] => 1602161920
)
Array
(
[from] => 1600905600
[to] => 1600992000
[duration] => 1
[person_types] => Array
(
)
[booking_services] => Array
(
)
[booking_service_quantities] => Array
(
)
[_added-to-cart-timestamp] => 1600955166
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。