从订单项获取 WooCommerce 产品属性值

问题描述 投票:0回答:1

读取产品的属性内容。 我在 WooCommerce 中正在处理的订单的 JSON 中包含正在处理的产品的属性值,我已经设法获取自定义字段的内容,请参阅此链接,但我还没有但仍然能够获得属性的内容,甚至可以来自同一产品。

function example_metadata( $metadata, $order, $post  ) {
  foreach ( $order->get_items() as $item_id => $item ) { 
        $metadata['atrib'] =$item->get_product_id()->get_attribute( 'split' );
        $product = wc_get_product();
        $metadata['atrib1'] = $item_id->get_attribute( 'split' );
  }
  return $metadata;
}
php wordpress woocommerce attributes product
1个回答
0
投票

由于

get_attribute()
是一个
WC_Product
方法,它必须与
WC_Product
对象一起使用…

尝试以下方法:

function example_metadata( $metadata, $order, $post  ) {
    foreach ( $order->get_items() as $item ) {
        $product = $item->get_product();
        $value   = $product->get_attribute('split');
        if ( $item->get_variation_id() > 0 && empty($value) ) {
           $product = wc_get_product($item->get_product_id());
           $value   = $product->get_attribute('split');
        }
        $metadata['atrib'] = $value;
    }
    return $metadata;
}

它可以工作。

如果不起作用,请尝试使用产品属性标签名称而不是slug,也许就像“Split”而不是“split”。

© www.soinside.com 2019 - 2024. All rights reserved.