WooCommerce CSV Exporter - 如何访问订单项?

时间:2015-05-24 10:37:37

标签: php wordpress csv woocommerce

我使用WooThemes的客户/订单CSV导出插件从我的商店中导出订单。但是我想在每个订单项的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 );

1 个答案:

答案 0 :(得分:0)

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