在WooCommerce订单中获取商品/产品属性

时间:2015-10-07 08:17:17

标签: wordpress-plugin woocommerce wordpress

我正在尝试以WooCoomerce顺序获取项目或产品属性。<​​/ p>

我怎样才能得到它?

$order  = new WC_Order( $order_id );
$items  = $order->get_items();

foreach ( $items as $item ) {
        $pid    = $item['product_id'];
        $patt   = $pid->get_attribute( 'pa_myattrname' );
        echo $patt;
}

稍后,我想在属性上插入自动回复链接,以便在用户完成付款后,他们会自动订阅我的自动回复。

谢谢

2 个答案:

答案 0 :(得分:2)

$item['product_id'];将返回整数product_id,您无法调用get_attribute方法。使用整数product_id,您需要创建一个Product对象,然后调用方法

$pid = $item['product_id'];  // returns the product id

$p = new WC_Product( $pid );  // create an object of WC_Product class

$patt = $p->get_attribute( 'pa_myattrname' );  // call get_attribute method

echo $patt;

答案 1 :(得分:0)

我知道这是一个古老的问题,但是该答案可能会对正在寻找更好选择的人有所帮助。
从订单中获取产品属性的方法要简单得多。您只需要进入产品(项目),然后加载meta data

// at first get order object
$order = wc_get_order($orderId);

// iterate through order items/products
foreach ($order->get_items() as $item) {
  // load meta data - product attributes
  foreach ($item->get_meta_data() as $metaData) {
    $attribute = $metaData->get_data();

    // attribute value
    $value = $attribute['value'];

    // attribute slug
    $slug = $attribute['key'];
  }
}