【问题标题】:Access and display order item meta data in Woocommerce在 Woocommerce 中访问和显示订单商品元数据
【发布时间】:2019-08-06 12:49:35
【问题描述】:

在 Woocommerce 中,我试图显示订单项目对象的结果并访问它:

$product_meta = $item->get_meta_data();
print_r ($product_meta);

这就是我想要拉的:

编辑:这是我使用$item->get_formatted_meta_data( '', true ) 得到的输出:

【问题讨论】:

    标签: php wordpress woocommerce protected orders


    【解决方案1】:

    要获取所有订单商品元数据,您将使用带有特定参数的WC_Order_Item get_formatted_meta_data() method,这样:

    // Accessible non protected Order item meta data
    $item_meta_data = $item->get_formatted_meta_data( '', true );
    
    // Formatted raw Output
    echo '<pre>'; print_r($item_meta_data); echo '</pre>';
    

    要访问某些订单项目属性,您可以使用any WC_Order_Item_Product method,例如:

    $item->get_product(); // Get the WC_Product object
    
    $item->get_product_id(); // Get the Product ID
    
    $item->get_variation_id(); // Get the Variation ID
    
    $item->get_name(); // Get the Product name
    
    $item->get_quantity(); // Get the item quantity 
    
    // and so on …
    

    那么如果您需要访问特定的“自定义”订单商品数据值,您将使用WC_Data get_meta() method

    $custom_value = $item->get_meta("_custom_key");
    

    见:Get Order items and WC_Order_Item_Product in Woocommerce 3


    更新 (显示您所需的自定义订单商品元数据)

    您需要的数据可以通过这种方式访问​​和显示:

    if( $lessons = $item->get_meta('lessons') ) {
        echo '<p>Lessons: '.$lessons.'</p>';
    }
    
    if( $tour_guide = $item->get_meta('tour guide') ) {
        echo '<p>Tour Guide: '.$tour_guide.'</p>';
    }
    

    我希望现在可以使用。

    【讨论】:

    • 嗨 Loic,我如何回显 key 的值和 code$item_meta_data = $item->get_formatted_meta_data( '', true );code 的值?
    • 'here_the_meta_key1' 这是假设它是一个自定义元?,我的不是自定义元,它是从管理订单屏幕直接添加到产品元的,所以它没有名称,看在图片中......我错过了一些东西,太茫然了,无法弄清楚
    • 更改了我的问题以使其更具体,如果这有帮助
    • 是的,这行得通,但很抱歉没有正确解释,网站管理员在订单屏幕上更改了这些,所以它们并不总是被称为课程和导游,他根据他的服务命名它们提供并且它们总是不同的......我想现在你完全理解为什么我无法解决这个问题
    【解决方案2】:

    我所做的只是把这个wc_display_item_meta( $item );

    就是这样,它会自动提取信息!!!!!!! 管理员可以将编辑订单屏幕中的内容更改为任何内容,它们将出现 (感谢@LoicTheAztec 为我指明了正确的方向

    【讨论】:

    • 我忘了提这个函数……但是如果你看它的源代码,它使用get_formatted_meta_data()方法(现在,你的问题不是很清楚,也不是很容易理解)……
    猜你喜欢
    • 2019-05-10
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 2018-01-24
    • 1970-01-01
    • 2021-06-15
    相关资源
    最近更新 更多