Получить метаданные элемента заказа в woocommerce 3
Как получить метаданные о продукте woocommerce? У меня есть поле custom мои продукты, и мне нужно получить эти данные.
{"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
, Поле ID
а также name
У меня есть доступ.
я использовал 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 ответа
Решение
Попробуйте следующее:
// 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>';
}
Связанные с:
/* Get Order Meta in Array[] format at thank you page - woocommerce */
add_action( 'woocommerce_thankyou', 'get_order_meta_at_thankyoupage', 20, 1);
function get_order_meta_at_thankyoupage( $order_id ){
$orderr = wc_get_order($order_id);
echo '<pre>';
print_r($orderr);
echo '</pre>';
}