如何在Advanced Order Export导出WooCommerce订单CSV后每行追加指定文本
Advanced Order Export for WooCommerce 追加自定义订单行解决方案
你的代码存在两处核心问题:
- 回调函数未接收插件传入的订单对象参数:
woe_fetch_order_data过滤器默认会传入2个参数,第一个是当前订单的所有行数据数组,第二个就是当前的 WC_Order 订单对象,你的回调没有声明接收第二个参数,$order变量属于未定义状态,代码运行自然报错。 - 追加行的数组结构不符合格式要求:你预期的自定义行只有2个CSV字段(拼接字符串、客户全名),但你传入了4个元素的数组,会导致生成4个分号分隔的字段,和你要的导出效果不匹配。
正确实现代码如下:
// 每个订单后追加指定格式的自定义行,支持Excel/CSV/TAB格式 add_filter("woe_fetch_order_data", function($rows, $order) { // 拼接第一列内容:T-ORD + 订单号 + 50个空格 $first_column = "T-ORD" . $order->get_order_number() . str_repeat(" ", 50); // 追加行,两个元素对应CSV的两列 $rows[] = [ $first_column, $order->get_billing_full_name() ]; return $rows; }, 10, 2);
说明:代码中使用str_repeat(" ", 50)生成固定数量的空格,比手动输入空格更易维护也不会出现数错空格的问题。如果导出后分隔符不匹配,检查插件的CSV分隔符配置是否为分号即可。
内容的提问来源于stack exchange,提问作者Maico Groot
相关产品推荐
相关产品推荐

