Вы можете использовать WC_data get_data()
метод on WC_Order
и WC_Order_Items
object таким образом:
// For testing only
$order = wc_get_order(500);
// Iterate though each order item
foreach ($order->get_items() as $item_id => $item) {
// Get the WC_Order_Item_Product object properties in an array
$item_data = $item->get_data();
if ($item['quantity'] > 0) {
// get the WC_Product object
$product = wc_get_product($item['product_id']);
// test output
print_r($product);
}
}
Или с помощью WC_Order_Item_Product get_product_id()
методов:
// For testing only
$order = wc_get_order(500);
// Iterate though each order item
foreach ($order->get_items() as $item_id => $item) {
if( $item->get_quantity() > 0 ){
// Get the product id from WC_Order_Item_Product object
$product_id = $item->get_product_id();
// get the WC_Product object
$product = wc_get_product($item['product_id']);
// test output
print_r($product);
}
}
Все это работает внутри активных php-файлов темы.
При тестировании в php-файлах темы я могу получить
WC_Product
объект с$item->get_product();
Связанный ответ: Как получить детали заказа WooCommerce