这有点奇怪,但我找不到如何做到这一点的答案:
我正在尝试创建一个自定义查询,以获取WooCommerce订单中包含的所有产品(及其元数据)。
例如,假设我将这些订单挂起:
我的目标是根据这些订购的产品创建一个列表,该列表由产品的元订购。像这样:
但同样,这些只是订单中的产品(包括其数量)。
我面临的问题是存储在数据库中的“订购商品”和“订购商品元素”非常有限,并且不会显示与产品相关的所有信息。换句话说,我没有找到一种方法来获取创建循环以创建列表所需的信息。
我的数据库技能有限,所以我们非常感谢您的想法!
答案 0 :(得分:0)
以下是一些可能对您有帮助的相关代码:
add_filter( 'woocommerce_shop_order_search_fields', 'woocommerce_shop_order_search_product_cat' );
function woocommerce_shop_order_search_product_cat( $search_fields ) {
$args = array(
'post_type' => 'shop_order'
);
$orders = new WP_Query($args);
if($orders->have_posts()) {
while($orders->have_posts()) {
$post = $orders->the_post();
$order_id = get_the_ID();
$order = new WC_Order($order_id);
$items = $order->get_items();
foreach($items as $item) {
$product_cats = wp_get_post_terms( $item['product_id'], 'product_cat' );
foreach($product_cats as $product_cat) {
add_post_meta($order_id, "_product_cat", $product_cat->name);
}
}
}
};
$search_fields[] = '_product_cat';
return $search_fields;
}