我正在使用“WooCommerce 客户/订单/优惠券导出”插件将我的订单导出为 CSV 文件。
我正在以每项一行的格式导出订单。这意味着每个订单都有多行。每个订单项目一行。
现在我想向每个行项目添加一些额外的数据。例如该项目的作者(在我们的例子中是供应商)。我找到了一种向导出添加额外数据的好方法。它可以在插件的文档中找到:https://docs.woocommerce.com/document/ordercustomer-csv-export-developer-documentation/#section-14
它有效,但并不完全是我所需要的。我可以向整个订单添加一些数据。因此每个行项目都会获得相同的数据。
所以我尝试更改代码并检查每个行项目。不幸的是,结果相同。每个行项目都获取相同的数据。就我而言,是订单最后一项的数据。
以下是我如何更改官方文档中示例的第 2 步:
function sv_wc_csv_export_modify_row_data_example( $order_data, $order, $csv_generator ) {
// Example showing how to extract order metadata into it's own column
//$meta_key_example = is_callable( array( $order, 'get_meta' ) ) ? $order->get_meta( 'meta_key_example' ) : $order->meta_key_example;
//$meta_key_example = is_callable( array( $order, 'get_meta' ) ) ? $order->get_meta( 'meta_key_example' ) : $order->meta_key_example;
// Loop through order line items
$allItems = $order->get_items();
foreach( $allItems as $item_line ){
$item_vendor_id = get_post_field( 'post_author', $item_line->get_product_id() );
$custom_data = array(
// User/Vendor
'item_vendor_id' => $item_vendor_id,
'vendor_username' => get_the_author_meta( 'username', $item_vendor_id ),
'vendor_user_email' => get_the_author_meta( 'user_email', $item_vendor_id ),
);
}
return sv_wc_csv_export_add_custom_order_data( $order_data, $custom_data, $csv_generator );
}
我猜我在错误的位置添加了数据?!但我无法弄清楚问题出在哪里。
鸿蒙传说