如果你使用
get_id()
方法,你会得到你的项目ID,即代码中的
15
。
获取产品ID:
正确的
WC_Order_Item_Product
方法来获取产品ID是:
get_product_id()
。
获取变体ID:
正确的
WC_Order_Item_Product
方法来获取变体ID是:
get_variation_id()
。
获取订单ID:
正确的
WC_Order_Item_Product
方法来获取订单ID是:
get_order_id()
。
获取WC_Product对象:
正确的
WC_Order_Item_Product
方法来获取
WC_Product
对象是:
get_product()
。
获取WC_Order对象
正确的WC_Order_Item_Product方法来获取WC_order对象是:
get_order()
使用WC_Data方法获取和解除数据和元数据:
- get_data()
- get_meta_data()
从订单项ID获取
WC_Product
对象。
$order_item_id = 15;
$item = new WC_Order_Item_Product($order_item_id);
$product_id = $item->get_product_id();
$variation_id = $item->get_variation_id();
$product = $item->get_product();
$quantity = $item->get_quantity();
$order_id = $item->get_order_id();
$order = $item->get_order();
$item_id = $item->get_id();
$product_name = $item->get_name();
$sku = $product->get_sku();
$total = $item->get_subtotal();
$total_tax = $item->get_subtotal_tax();
$total = $item->get_total();
$total_tax = $item->get_total_tax();
从
WC_Order
对象中获取订单项目(并使用
WC_product
对象):
$order_id = 156;
$order = wc_get_order( $order_id );
foreach( $order->get_items() as $item_id => $item ){
$product_id = $item->get_product_id();
$variation_id = $item->get_variation_id();
$product = $item->get_product();
$quantity = $item->get_quantity();
$product_name = $item->get_name();
$sku = $product->get_sku();
$total = $item->get_subtotal();
$total_tax = $item->get_subtotal_tax();
$total = $item->get_total();
$total_tax = $item->get_total_tax();
}
访问数据和自定义元数据:
1). 解除保护 WC_Order_Item_Product
数据 和自定义元数据:
您可以使用所有 WC_Order_Item_Product 数据
的方法,或者您可以使用 WC_Data
的以下方法解除数据的保护:
$order_id = 156;
$order = wc_get_order( $order_id );
foreach( $order->get_items() as $item_id => $item ){
$item_product_data_array = $item->get_data();
$item_product_meta_data_array = $item->get_meta_data();
$meta_value = $item->get_meta( 'custom_meta_key', true );
$formatted_meta_data = $item->get_formatted_meta_data( ' ', true );
$total = $item->get_subtotal();
$total_tax = $item->get_subtotal_tax();
$total = $item->get_total();
$total_tax = $item->get_total_tax();
}
2). 数组访问仍然可以直接获取常见数据(为了向后兼容传统数组)。
$order_id = 156;
$order = wc_get_order( $order_id );
foreach( $order->get_items() as $item_id => $item ){
$product_id = $item['product_id'];
$variation_id = $item['variation_id'];
$product_name = $item['name'];
$item_qty = $item['quantity'];
$line_total = $item['subtotal'];
$line_total_tax = $item['subtotal_tax'];
$line_total2 = $item['total'];
$line_total_tax2 = $item['total_tax'];
}
作为参考:
get_id()
,但我真的不知道它是产品 ID 还是其他对象 ID。你能详细说明一下这里的区别吗? - Solomon Clossonget_id()
只是检查它是否有一个ID,但是返回的是对象而不是产品ID。基本上,我不确定在这种情况下是否可以使用get_id()
。也许这没问题,我不知道,但我收到了一个PHP通知,说wc_deprecated_function
。 - Solomon Closson