在 WooCommerce 3 中获取不受保护的数组中的所有订单项元数据
Get all order item meta data in an unprotected array in WooCommerce 3
是否有另一种方法 return 自定义属性的元值 return 不是受保护的数组
foreach ($order->get_items() as $item_key => $item_values) {
$item_id = $item_values->get_id();
$item_meta_data = $item_values->get_meta_data();
var_dump($item_meta_data);
}
它输出:
object(WC_Meta_Data)#3433 (2) {
["current_data":protected]=>
array(3) {
["id"]=>
int(4690)
["key"]=>
string(14) "pa_second-half"
["value"]=>
string(11) "nutty-butty"
}
我也试过了
$item_meta_data = $item_values->get_data();
$item_meta_data['key']
其中 return 为 NULL。
已更新
要在不受保护的数组中获取订单项元数据,您可以使用 WC_Order_Item
method get_formatted_meta_data()
。
The WC_Order_Item
method get_formatted_meta_data()
has 2 optional arguments:
$hideprefix
to hide the prefix meta key (default is "_"
)
$include_all
including all meta data, not only custom meta data (default is false
)
所以在foreach循环的订单项目中:
foreach ( $order->get_items() as $item_id => $item ) {
// Get all meta data in an unprotected array of objects
$meta_data = $item->get_formatted_meta_data('_', true);
// Raw output (testing)
echo '<pre>'; var_dump($meta_data); echo '</pre>';
}
您将获得一组不受保护的可访问对象,其中包含:
[4690]=>
object(stdClass)#0000 (4) {
["key"]=>
string(14) "pa_second-half"
["value"]=>
string(11) "nutty-butty"
["display_key"]=>
string(11) "Second half"
["display_value"]=>
string(12) "Nutty butty"
}
Now you can directly get the value from the meta key using the WC_Data
method get_meta()
in the order items foreach loop.
So for pa_second-half
meta key:
foreach ( $order->get_items() as $item_id => $item ) {
$meta_data = $item->get_formatted_meta_data();
// Get the meta data value
$meta_value = $item->get_meta("pa_second-half");
echo $meta_value; // Display the value
}
And it will display: nutty-butty
相关主题:
是否有另一种方法 return 自定义属性的元值 return 不是受保护的数组
foreach ($order->get_items() as $item_key => $item_values) {
$item_id = $item_values->get_id();
$item_meta_data = $item_values->get_meta_data();
var_dump($item_meta_data);
}
它输出:
object(WC_Meta_Data)#3433 (2) {
["current_data":protected]=>
array(3) {
["id"]=>
int(4690)
["key"]=>
string(14) "pa_second-half"
["value"]=>
string(11) "nutty-butty"
}
我也试过了
$item_meta_data = $item_values->get_data();
$item_meta_data['key']
其中 return 为 NULL。
已更新
要在不受保护的数组中获取订单项元数据,您可以使用 WC_Order_Item
method get_formatted_meta_data()
。
The
WC_Order_Item
methodget_formatted_meta_data()
has 2 optional arguments:
$hideprefix
to hide the prefix meta key (default is"_"
)$include_all
including all meta data, not only custom meta data (default isfalse
)
所以在foreach循环的订单项目中:
foreach ( $order->get_items() as $item_id => $item ) {
// Get all meta data in an unprotected array of objects
$meta_data = $item->get_formatted_meta_data('_', true);
// Raw output (testing)
echo '<pre>'; var_dump($meta_data); echo '</pre>';
}
您将获得一组不受保护的可访问对象,其中包含:
[4690]=>
object(stdClass)#0000 (4) {
["key"]=>
string(14) "pa_second-half"
["value"]=>
string(11) "nutty-butty"
["display_key"]=>
string(11) "Second half"
["display_value"]=>
string(12) "Nutty butty"
}
Now you can directly get the value from the meta key using the
WC_Data
methodget_meta()
in the order items foreach loop.So for
pa_second-half
meta key:foreach ( $order->get_items() as $item_id => $item ) { $meta_data = $item->get_formatted_meta_data(); // Get the meta data value $meta_value = $item->get_meta("pa_second-half"); echo $meta_value; // Display the value }
And it will display: nutty-butty
相关主题: