英文:
How to display the meta key and values of the order item in the admin order list column order status?
问题
我正在使用WooCommerce,并使用来自automatic的付费插件“product addon”,该插件会将一些元数据添加到订单项目表中。
我想在管理员订单列表中显示2个或更多特定的元数据键值。
- 1 Funghi
Topup: Salami
Oil: chilli
我已经使用以下代码使数量和产品名称正常工作,但订单项目元数据不正常,请问有什么建议吗?
add_action('manage_shop_order_posts_custom_column', 'orders_list_preview_items', 20, 2 );
function orders_list_preview_items($column, $post_id) {
global $the_order, $post;
if ('order_status' === $column) {
// Start list
echo '<ul class="orders-list-items-preview">';
// Loop through order items
foreach($the_order->get_items() as $item) {
$product = $item->get_product();
$name = $item->get_name();
$qty = $item->get_quantity();
$meta = $item->get_meta();
echo "<li>
<label>$qty</label> $name $meta
</li>";
}
// End list
echo '</ul>';
}
}
英文:
I´m using Woocommerce with paid addon from automatic "product addon" which adds some meta values to the order item table
I want to show 2 or more specific meta key values in the admin order list.
- 1 Funghi
Topup: Salami
Oil: chilli
I got the quantity and product name working with this code but not the order item meta,
any ideas?
add_action('manage_shop_order_posts_custom_column', 'orders_list_preview_items', 20, 2 );
function orders_list_preview_items($column, $post_id) {
global $the_order, $post;
if ('order_status' === $column) {
// Start list
echo '<ul class="orders-list-items-preview">';
// Loop through order items
foreach($the_order->get_items() as $item) {
$product = $item->get_product();
$name = $item->get_name();
$qty = $item->get_quantity();
$meta = $item->get_meta();
echo "<li>
<label>$qty</label> $name $meta
</li>";
}
// End list
echo '</ul>';
}
}
答案1
得分: 0
你可以循环遍历项目的元数据,并检查你想要显示的元键。检查下面的代码。
add_action('manage_shop_order_posts_custom_column', 'orders_list_preview_items', 20, 2);
function orders_list_preview_items($column, $post_id){
global $the_order, $post;
if ('order_status' === $column) {
// 开始列表
echo '<ul class="orders-list-items-preview">';
// 循环遍历订单项目
foreach ($the_order->get_items() as $item) {
$product = $item->get_product();
$name = $item->get_name();
$qty = $item->get_quantity();
$meta = $item->get_meta();
echo "<li>
<label>$qty</label> $name";
// 循环遍历项目的元数据
foreach ($meta as $meta_key => $meta_value) {
// 显示特定的元键值
if (in_array($meta_key, ['Funghi Topup', 'Salami Oil', 'chilli'])) {
echo "<br>$meta_key: $meta_value";
}
}
echo "</li>";
}
// 结束列表
echo '</ul>';
}
}
英文:
You can Loop through the item's metadata. and check for only the meta keys that you want to display. check the below code.
add_action('manage_shop_order_posts_custom_column', 'orders_list_preview_items', 20, 2);
function orders_list_preview_items($column, $post_id){
global $the_order, $post;
if ('order_status' === $column) {
// Start list
echo '<ul class="orders-list-items-preview">';
// Loop through order items
foreach ($the_order->get_items() as $item) {
$product = $item->get_product();
$name = $item->get_name();
$qty = $item->get_quantity();
$meta = $item->get_meta();
echo "<li>
<label>$qty</label> $name";
// Loop through the item's meta data
foreach ($meta as $meta_key => $meta_value) {
// Display specific meta key values
if (in_array($meta_key, ['Funghi Topup', 'Salami Oil', 'chilli'])) {
echo "<br>$meta_key: $meta_value";
}
}
echo "</li>";
}
// End list
echo '</ul>';
}
}
答案2
得分: 0
Here is the translated code:
'add_action('manage_shop_order_posts_custom_column', orders_list_preview_items', 20, 2);
function orders_list_preview_items($column, $post_id) {
global $the_order, $post;
if ('order_status' === $column) {
// Start list
echo '<ul class="orders-list-items-preview">';
// Loop through order items
foreach ($the_order->get_items() as $item) {
$product = $item->get_product();
$name = $item->get_name();
$qty = $item->get_quantity();
$meta = $item->get_meta_data(); // Use get_meta_data() to retrieve item meta data
echo "<li><label>$qty</label> $name ";
// Display Topup and Oil meta values
foreach ($meta as $meta_item) {
if ($meta_item->key === 'Topup') {
echo "<span style='color: green; line-height: 1.5;'>{$meta_item->value}</span> ";
}
if ($meta_item->key === 'Oil') {
echo "<span style='color: brown; line-height: 1.5;'>{$meta_item->value}</span>";
}
}
echo "</li>";
}
// End list
echo '</ul>';
}
}
code works ;-)
英文:
'add_action('manage_shop_order_posts_custom_column', orders_list_preview_items', 20, 2);
function orders_list_preview_items($column, $post_id) {
global $the_order, $post;
if ('order_status' === $column) {
// Start list
echo '<ul class="orders-list-items-preview">';
// Loop through order items
foreach ($the_order->get_items() as $item) {
$product = $item->get_product();
$name = $item->get_name();
$qty = $item->get_quantity();
$meta = $item->get_meta_data(); // Use get_meta_data() to retrieve item meta data
echo "<li><label>$qty</label> $name ";
// Display Topup and Oil meta values
foreach ($meta as $meta_item) {
if ($meta_item->key === 'Topup') {
echo "<span style='color: green; line-height: 1.5;'>{$meta_item->value}</span> ";
}
if ($meta_item->key === 'Oil') {
echo "<span style='color: brown; line-height: 1.5;'>{$meta_item->value}</span>";
}
}
echo "</li>";
}
// End list
echo '</ul>';
}
}
code works
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论