如何从 WooCommerce 中的订单项中获取产品类别 ID

Posted

技术标签:

【中文标题】如何从 WooCommerce 中的订单项中获取产品类别 ID【英文标题】:How to get product category ids from order items in WooCommerce 【发布时间】:2020-12-09 21:41:12 【问题描述】:

我正在努力获取使用以下代码订购的每个产品的类别。

function get_order_detail($order_id)
    $order = wc_get_order( $order_id );


    foreach ($order->get_items() as $item_key => $item )
        $product = $item->get_product();
        $categorieID = $product->category_ids[0];
        $categorie_title = get_the_category_by_ID($categorieID);
    


但产品的变体有尺寸、颜色等变体, 他们将 $categorieID 的值返回为 NULL。

【问题讨论】:

【参考方案1】:

使用以下命令获取每个订单项目的产品类别术语名称:

function get_order_detail( $order_id ) 
    $order = wc_get_order( $order_id );

    foreach ( $order->get_items() as $item_id => $item )  
        // Get the product category(ies) term(s) name(s) - (array)
        $term_names = wp_get_post_terms( $item->get_product_id(), 'product_cat', array('fields' => 'names') );
        // Set them as a coma separated string
        $categories_string = implode(',', $term_names);

    

或者您可以使用以下方法获取产品类别 ID:

function get_order_detail( $order_id ) 
    $order = wc_get_order( $order_id );

    foreach ( $order->get_items() as $item_id => $item )  
        // Get the product category(ies) term(s) Id(s) - (array)
        $term_ids = wp_get_post_terms( $item->get_product_id(), 'product_cat', array('fields' => 'ids') );
    

这适用于所有产品类型,甚至是可变产品的变体。

【讨论】:

以上是关于如何从 WooCommerce 中的订单项中获取产品类别 ID的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式更新 WooCommerce 订阅订单行项目

在 woocommerce 3 中获取订单项的元数据

带有 WooCommerce 扩展的 WP Webhooks Pro 不发送订单项

如何从functions.php中的简码挂钩中排除产品类别ID - WooCommerce

获取产品变体描述以显示在 woocommerce 中的订单项目上?

在 WooCommerce 电子邮件通知中更改订单项元数据