【问题标题】:Show product meta in order items table in Order Details在订单详细信息的订单项目表中显示产品元数据
【发布时间】:2014-09-03 12:32:16
【问题描述】:

我需要为订单项目添加自定义列并在此列中显示特定的产品元数据。 我的意思是像下面的图片, 我无法从 woocommerce 中找到任何添加此列的操作!

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    您可以使用以下代码:

    // Add custom column headers here
    add_action('woocommerce_admin_order_item_headers', 'my_woocommerce_admin_order_item_headers');
    function my_woocommerce_admin_order_item_headers() {
        // set the column name
        $column_name = 'Test Column';
    
        // display the column name
        echo '<th>' . $column_name . '</th>';
    }
    
    // Add custom column values here
    add_action('woocommerce_admin_order_item_values', 'my_woocommerce_admin_order_item_values', 10, 3);
    function my_woocommerce_admin_order_item_values($_product, $item, $item_id = null) {
        // get the post meta value from the associated product
        $value = get_post_meta($_product->post->ID, '_custom_field_name', 1);
    
        // display the value
        echo '<td>' . $value . '</td>';
    }
    

    我已对其进行了评论,因此应该足够清楚,但简而言之,此代码添加了一个名为“Test Column”的自定义列,该列从产品的自定义字段中提取值,称为“_custom_field_name” .

    【讨论】:

    • 谢谢,谢谢,谢谢...,你救了我很多次!再次感谢:D
    • 此代码的唯一问题是它提取了产品的当前元值......而不是在结帐期间(可能)捕获的元值。
    • @Marin Atanasov 如果我需要从订单行项目中编辑自定义元值,我该怎么做?
    • 有没有办法同时删除默认的 woocommerce 列、成本、数量、总计、税收?
    【解决方案2】:

    从 WooCommerce 3.0 开始,您不能直接调用 product_id。你需要替换这个:

    $product_id = $_product->get_id();
    $value = get_post_meta($product_id, '_custom_field_name', 1);
    

    这样就可以解决问题并删除所有错误和通知。

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 2016-05-14
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      相关资源
      最近更新 更多