You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce中仅获取可变产品的父产品名称?

解决方案

你当前直接读取订单项的name字段获取的是系统预先拼接好的完整产品名(包含变体属性后缀),可以通过判断产品类型是否为可变变体,单独获取父产品的名称即可。

修改后的代码如下:

public function getProducts() {
        $items =  $this->order->get_items();
        $product = chr(10);
        if(!empty($items)) {
            foreach ($items as $item) {
                $product_item = $item->get_product();
                if ($product_item) {
                    // 判断是否为变体产品
                    if ($product_item->is_type('variation')) {
                        // 获取父产品实例后读取名称
                        $parent_product = wc_get_product($product_item->get_parent_id());
                        $product = $parent_product ? $parent_product->get_name() : $item['name'];
                    } else {
                        // 普通产品直接取官方方法返回的名称
                        $product = $product_item->get_name();
                    }
                }
            }
        }
        $return['{products}'] = $product;
}

相关说明:

  • 调用is_type('variation')方法可以准确判断当前产品是否为可变产品的子变体
  • 用get_parent_id()获取父产品ID后,通过wc_get_product()获取父产品实例,再调用get_name()即可拿到纯父产品名称
  • 增加了父产品存在性判断,避免极端情况报错

内容的提问来源于stack exchange,提问作者Bondweb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 12:54:03