获取woocommerce 3中订单商品的元数据

时间:2018-02-01 14:54:54

标签: php wordpress woocommerce metadata orders

如何获取产品woocommerce的元数据? 我有我的产品现场定制,我需要获取这些数据。

{"ID":151,
 "ORDER_ID":251,
 "NAME":"car",
 "PRODUCT_ID":87,
 "VARIATION_ID":0,
 "QUANTITY":1,
 "TAX_CLASS":"",
 "SUBTOTAL":"3",
 "SUBTOTAL_TAX":"0",
 "TOTAL":"3",
 "TOTAL_TAX":"0",
 "TAXES":{"TOTAL":[],
          "SUBTOTAL":[]},
 "META_DATA":[{"ID":1433,
               "KEY":"my_car",
               "VALUE":"red"}]}

但总是结果相同,我无法访问字段meta_data。我可以访问IDname字段。

我使用了get_data()get_item(),但是当我尝试使用get_data()访问字段meta_data时,它会给我这个错误:

 UNCAUGHT ERROR: CANNOT USE OBJECT OF TYPE WC_DATETIME AS ARRAY IN  

使用get_item()时,值meta_data为空,因为受到保护。

我如何获得这些价值?

2 个答案:

答案 0 :(得分:8)

尝试以下方法:

// Get the $order object from an ID (if needed only)
$order = wc_get_order( $order_id);

// Loop through order line items
foreach( $order->get_items() as $item ){
    // get order item data (in an unprotected array)
    $item_data = $item->get_data();

    // get order item meta data (in an unprotected array)
    $item_meta_data = $item->get_meta_data();

    // get only additional meta data (formatted in an unprotected array)
    $formatted_meta_data = $item->get_formatted_meta_data();

    // Display the raw outputs (for testing)
    echo '<pre>'; print_r($item_meta_data); echo '</pre>';
    echo '<pre>'; print_r($formatted_meta_data); echo '</pre>';
}

相关:

答案 1 :(得分:0)

input[type='radio']{
  -webkit-appearance:none;
  appearance:none;
  position:absolute;
  display:content;
  left:0px;
  top:0px;
  width:auto;
  max-width: 96px;
  border-width: 0px;
  border-color: rebeccapurple;
  border-style: dashed;
}
.input[type='radio']:checked{
  filter:invert(100%);
}