【问题标题】:WooCommerce CSV Exporter - How to access line items?WooCommerce CSV Exporter - 如何访问订单项?
【发布时间】:2023-03-13 07:09:01
【问题描述】:

我使用 WooThemes 的 Customer/Order CSV Export 插件从我的商店导出订单。但是,我想在每个行项目的 CSV 输出中添加额外的数据(做一些计算等),我在 WooThemes 官方页面上找到了以下信息。

但是我想访问订单项数据,我该如何实现呢?例如:如何获取未存储在 postmeta 数据库中的“item_total”(postmeta 数据库在下面的示例中列出)?

line_item 数据是否包含在 $order_data 中?如何访问它?

function wc_csv_export_modify_row_data( $order_data, $order, $csv_generator ) {

    $custom_data = array(
        'column_1' => get_post_meta( $order->id, 'some_meta_key', true ),
        'column_2' => get_post_meta( $order->id, 'some_other_meta_key', true ),
        // add other row data here in the format column_key => data
    );

    $new_order_data = array();

    if ( isset( $csv_generator->order_format ) && ( 'default_one_row_per_item' == $csv_generator->order_format || 'legacy_one_row_per_item' == $csv_generator->order_format ) ) {

        foreach ( $order_data as $data ) {
            $new_order_data[] = array_merge( (array) $data, $custom_data );
        }

    } else {

        $new_order_data = array_merge( $order_data, $custom_data );
    }

    return $new_order_data;
}
add_filter( 'wc_customer_order_csv_export_order_row', 'wc_csv_export_modify_row_data', 10, 3 );

【问题讨论】:

    标签: php wordpress csv woocommerce


    【解决方案1】:

    您可以通过将订单 id 传递给它来创建 WC_Order 类的对象。使用 get_items() 您将获得按该顺序存在的所有项目数组。获取数组后,您可以使用 get_item_meta() 获取每个项目的元值,将 order_item_id 传递给它。

    【讨论】:

      猜你喜欢
      • 2018-03-16
      • 2021-05-10
      • 1970-01-01
      • 1970-01-01
      • 2017-09-21
      • 2019-08-28
      • 2019-09-08
      • 2014-11-25
      • 2017-08-31
      相关资源
      最近更新 更多