El tutorial o código que verás en este artículo es la solución más rápida y válida que hallamos a esta duda o dilema.
Solución:
Si usa el
get_id()
método, obtiene su ID de artículo que es15
en su código.
Obtenga la identificación del producto:
Lo correcto WC_Order_Item_Product
El método para obtener el ID del producto es: get_product_id()
Obtener el ID de variación:
Lo correcto WC_Order_Item_Product
El método para obtener el Id de la variación es: get_variation_id()
Obtener el ID del pedido
Lo correcto WC_Order_Item_Product
El método para obtener el ID del pedido es: get_order_id()
Obtener el objeto WC_Product
Lo correcto WC_Order_Item_Product
método para conseguir WC_Product
el objeto es:
get_product()
Obtener el objeto WC_Order
Lo correcto WC_Order_Item_Product
método para conseguir WC_order
el objeto es:
get_order()
Obtener y desproteger los datos y metadatos utilizando WC_Data
métodos:
get_data()
get_meta_data()
Consigue el WC_Product
objeto del ID de artículo de pedido:
$order_item_id = 15;
$item = new WC_Order_Item_Product($order_item_id);
// The product ID
$product_id = $item->get_product_id();
// The variation ID
$variation_id = $item->get_variation_id();
// The WC_Product object
$product = $item->get_product();
// The quantity
$quantity = $item->get_quantity();
// The order ID
$order_id = $item->get_order_id();
// The WC_Order object
$order = $item->get_order();
// The item ID
$item_id = $item->get_id(); // which is your $order_item_id
// The product name
$product_name = $item->get_name(); // … OR: $product->get_name();
// Get the product SKU (using WC_Product method)
$sku = $product->get_sku();
// Get line item totals (non discounted)
$total = $item->get_subtotal(); // Total without tax (non discounted)
$total_tax = $item->get_subtotal_tax(); // Total tax (non discounted)
// Get line item totals (discounted when a coupon is applied)
$total = $item->get_total(); // Total without tax (discounted)
$total_tax = $item->get_total_tax(); // Total tax (discounted)
Obtenga los artículos de pedido del WC_Order
objeto(y usa elWC_product
Objeto):
$order_id = 156; // The order_id
// get an instance of the WC_Order object
$order = wc_get_order( $order_id );
// The loop to get the order items which are WC_Order_Item_Product objects since WC 3+
foreach( $order->get_items() as $item_id => $item )
//Get the product ID
$product_id = $item->get_product_id();
//Get the variation ID
$variation_id = $item->get_variation_id();
//Get the WC_Product object
$product = $item->get_product();
// The quantity
$quantity = $item->get_quantity();
// The product name
$product_name = $item->get_name(); // … OR: $product->get_name();
//Get the product SKU (using WC_Product method)
$sku = $product->get_sku();
// Get line item totals (non discounted)
$total = $item->get_subtotal(); // Total without tax (non discounted)
$total_tax = $item->get_subtotal_tax(); // Total tax (non discounted)
// Get line item totals (discounted when a coupon is applied)
$total = $item->get_total(); // Total without tax (discounted)
$total_tax = $item->get_total_tax(); // Total tax (discounted)
### Acceso a datos y metadatos personalizados:
1). Desproteger WC_Order_Item_Product
datos y metadatos personalizados:
Puedes usar todo WC_Order_Item_Product data
métodos o puede desproteger los datos usando WC_Data
siguientes métodos:
$order_id = 156; // The order_id
// get an instance of the WC_Order object
$order = wc_get_order( $order_id );
// The loop to get the order items which are WC_Order_Item_Product objects since WC 3+
foreach( $order->get_items() as $item_id => $item )
// Get the common data in an array:
$item_product_data_array = $item->get_data();
// Get the special meta data in an array:
$item_product_meta_data_array = $item->get_meta_data();
// Get the specific meta data from a meta_key:
$meta_value = $item->get_meta( 'custom_meta_key', true );
// Get all additional meta data (formatted in an unprotected array)
$formatted_meta_data = $item->get_formatted_meta_data( ' ', true );
// Get line item totals (non discounted)
$total = $item->get_subtotal(); // Total without tax (non discounted)
$total_tax = $item->get_subtotal_tax(); // Total tax (non discounted)
// Get line item totals (discounted when a coupon is applied)
$total = $item->get_total(); // Total without tax (discounted)
$total_tax = $item->get_total_tax(); // Total tax (discounted)
2). El acceso a la matriz todavía es posible (para compatibilidad con versiones anteriores de matrices heredadas) para obtener los datos comunes directamente:
$order_id = 156; // The order_id
// get an instance of the WC_Order object
$order = wc_get_order( $order_id );
// The loop to get the order items which are WC_Order_Item_Product objects since WC 3+
foreach( $order->get_items() as $item_id => $item )
$product_id = $item['product_id']; // Get the product ID
$variation_id = $item['variation_id']; // Get the variation ID
$product_name = $item['name']; // The product name
$item_qty = $item['quantity']; // The quantity
// Get line item totals (non discounted)
$line_total = $item['subtotal']; // or $item['line_subtotal'] -- The line item non discounted total
$line_total_tax = $item['subtotal_tax']; // or $item['line_subtotal_tax'] -- The line item non discounted tax total
// Get line item totals (discounted)
$line_total2 = $item['total']; // or $item['line_total'] -- The line item non discounted total
$line_total_tax2 = $item['total_tax']; // The line item non discounted tax total
// And so on ……
Como referencia:
- Obtenga los metadatos de un artículo de pedido en woocommerce 3
- Cómo obtener los detalles del pedido de WooCommerce
WC_Order_Item_Product hereda de WC_Order_Item, que tiene get_order_id (), por lo que puede obtener el ID de pedido con
$order_item->get_order_id();
Aquí tienes las reseñas y valoraciones
Tienes la opción de añadir valor a nuestro contenido informacional dando tu veteranía en las referencias.