从其元键获取 WooCommerce 订单项自定义字段值
Get WooCommerce order item custom fields values from their meta key
我正在尝试制作一个自定义订单页面,我可以在其中将所有订单详细信息显示到前端。
我创建了一个带有自定义字段的产品。现在我正在尝试显示订单的元数据,但我想 select 数组中的某些值。
这是我的代码:
$args = array('status'=> 'on-hold');
$orders = wc_get_orders($args);
foreach ( $orders as $order ) {
$order_id = $order->get_id();
$order_items = wc_get_order($order_id);
//echo $order_items;
foreach( $order_items->get_items() as $item ){
$item_data = $item->get_data();
$item_meta_data = $item->get_meta_data();
$formatted_meta_data = $item->get_formatted_meta_data( '_', true );
//echo '<pre>' . print_r($item_meta_data, true) . '</pre>';
echo '<pre>' . print_r($formatted_meta_data, true) . '</pre>';
}
}
这是我得到的:
Array
(
[45] => stdClass Object
(
[key] => Characters
[value] => Character1 (.00)
Character2 (.00)
[display_key] => Characters
[display_value] =>
Character1 (.00)
Character2 (.00)
)
[46] => stdClass Object
(
[key] => More
[value] => Card (.00)
Bounties (.00)
[display_key] => More
[display_value] =>
Card (.00)
Bounties (.00)
)
)
//etc
我想要做的是得到这样的东西:
Character1 (.00)
Character2 (.00)
Card (.00)
Bounties (.00)
您可以从您想要的 meya 键使用 WC_Date 方法 get_meta(),如下所示:
// Get orders
$orders = wc_get_orders( array( 'status'=> 'on-hold', 'limit' => -1 ) );
// Loop through the array of WC_Order Objects
foreach ( $orders as $order ) {
// Get order Id
$order_id = $order->get_id();
// Loop through order items
foreach( $order->get_items() as $item ) {
// Get "Characters" item custom field
$characters = $item->get_meta('Characters');
if ( $characters ) {
echo '<p>Characters: ' . $characters . '</p>'; // Display
}
// Get "More" item custom field
$more = $item->get_meta('More');
if ( $more ) {
echo '<p>More: ' . $more . '</p>'; // Display
}
}
}
它应该有效
我正在尝试制作一个自定义订单页面,我可以在其中将所有订单详细信息显示到前端。
我创建了一个带有自定义字段的产品。现在我正在尝试显示订单的元数据,但我想 select 数组中的某些值。
这是我的代码:
$args = array('status'=> 'on-hold');
$orders = wc_get_orders($args);
foreach ( $orders as $order ) {
$order_id = $order->get_id();
$order_items = wc_get_order($order_id);
//echo $order_items;
foreach( $order_items->get_items() as $item ){
$item_data = $item->get_data();
$item_meta_data = $item->get_meta_data();
$formatted_meta_data = $item->get_formatted_meta_data( '_', true );
//echo '<pre>' . print_r($item_meta_data, true) . '</pre>';
echo '<pre>' . print_r($formatted_meta_data, true) . '</pre>';
}
}
这是我得到的:
Array
(
[45] => stdClass Object
(
[key] => Characters
[value] => Character1 (.00)
Character2 (.00)
[display_key] => Characters
[display_value] =>
Character1 (.00)
Character2 (.00)
)
[46] => stdClass Object
(
[key] => More
[value] => Card (.00)
Bounties (.00)
[display_key] => More
[display_value] =>
Card (.00)
Bounties (.00)
)
)
//etc
我想要做的是得到这样的东西:
Character1 (.00)
Character2 (.00)
Card (.00)
Bounties (.00)
您可以从您想要的 meya 键使用 WC_Date 方法 get_meta(),如下所示:
// Get orders
$orders = wc_get_orders( array( 'status'=> 'on-hold', 'limit' => -1 ) );
// Loop through the array of WC_Order Objects
foreach ( $orders as $order ) {
// Get order Id
$order_id = $order->get_id();
// Loop through order items
foreach( $order->get_items() as $item ) {
// Get "Characters" item custom field
$characters = $item->get_meta('Characters');
if ( $characters ) {
echo '<p>Characters: ' . $characters . '</p>'; // Display
}
// Get "More" item custom field
$more = $item->get_meta('More');
if ( $more ) {
echo '<p>More: ' . $more . '</p>'; // Display
}
}
}
它应该有效