如何在 Woocommerce 中获取自定义分类法的 post 术语名称

How to get the post term name of a custom taxonomy in Woocommerce

在 Woocommerce 中,我正在尝试更改 (添加一些) 插件文件 Retailcrm для wordpress/woocommerce, Github 尤其是允许我 添加的部分产品的自定义分类名称 (与制造商相关) 到 xml.

问题是我的代码有问题,我无法获取分类法的名称。

这是 php 文件的原始部分:

$product_data = array(
            'id' => $product->get_id(), 
            'productId' => ($this->get_parent_product($product) > 0) ? $parent->get_id() : $product->get_id(),
            'name' => $product->get_name(),
            'productName' => ($this->get_parent_product($product) > 0) ? $parent->get_title() : $product->get_title(),
            'price' => $this->get_price_with_tax($product),
            'purchasePrice'=> WC_COG_Product::get_cost($product),
            'picture' => $image[0],
            'url' => ($this->get_parent_product($product) > 0) ? $parent->get_permalink() : $product->get_permalink(),
            'quantity' => is_null($product->get_stock_quantity()) ? 0 : $product->get_stock_quantity(),
            'categoryId' => $term_list,
            'dimension' => $dimension,
            'weight' => $weight,
            'tax' => isset($tax) ? $tax['rate'] : 'none'
        );

我有一个分类 pa_proizvoditel,这是产品的一个属性。

我的猜测是这样做:

$vendor = get_term( $product, 'pa_proizvoditel' );
        $product_data = array(
            'id' => $product->get_id(), 
            'productId' => ($this->get_parent_product($product) > 0) ? $parent->get_id() : $product->get_id(),
            'name' => $product->get_name(),
            'productName' => ($this->get_parent_product($product) > 0) ? $parent->get_title() : $product->get_title(),
            'price' => $this->get_price_with_tax($product),
            'purchasePrice'=> WC_COG_Product::get_cost($product),
            'vendor'=> $vendor->name,
            'picture' => $image[0],
            'url' => ($this->get_parent_product($product) > 0) ? $parent->get_permalink() : $product->get_permalink(),
            'quantity' => is_null($product->get_stock_quantity()) ? 0 : $product->get_stock_quantity(),
            'categoryId' => $term_list,
            'dimension' => $dimension,
            'weight' => $weight,
            'tax' => isset($tax) ? $tax['rate'] : 'none'
        );

即添加:

$vendor = get_term( $product, 'pa_proizvoditel' );

'vendor'=> $vendor->name,

正如插件开发者所建议的,但在这种情况下 xml 我们将在 <vendor>[= 中看到 产品名称 42=].

如何正确获取该分类法的名称?

已更新:

因为它是产品属性 (以“pa_”开头),你可以简单地在你的代码数组中使用WC_Product 方法 get_attribute(),将为您提供术语名称:

'vendor'=> $product->get_attribute( 'pa_proizvoditel' );