You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义HTML交易邮件中WooCommerce多商品订单展示异常求助

解决方案:拆分多商品数据为表格多行

1. 在Zapier中拆分商品数组(核心操作)

Zapier获取WooCommerce订单数据时,默认会把多商品字段合并成逗号分隔字符串,需要先拆分出每个商品的独立数据:

  • 在WooCommerce触发步骤之后,添加Formatter by Zapier工具,选择「Utilities」分类下的「Line Itemizer」
  • 将商品名称、描述、数量这三个逗号分隔的字段分别填入对应「Input」框,设置「Separator」为逗号(,)
  • 测试运行后,Zapier会自动将每个商品的信息拆分成独立的行项目(Line Items)

2. 修改Campaign Monitor模板实现循环渲染

更新你的自定义HTML模板,用Campaign Monitor的模板语法遍历拆分后的商品行项目:

<div class="s-table-container">
<table class="s-table">
<thead>
<tr>
<th>Products</th>
<th>Description.</th>
<th>Quant.</th>
</tr>
</thead>
<tbody>
{{#each line_items}}
<tr>
<td>{{product_name}}</td>
<td>{{product_description}}</td>
<td>{{quantity}}</td>
</tr>
{{/each}}
</tbody>
</table>
</div>

注意:把line_items、product_name等变量替换成你在Zapier中设置的实际行项目字段名,确保和Zapier输出的字段完全匹配。

3. 验证Zapier数据映射

在Zapier的Campaign Monitor发送邮件步骤中,确保将拆分后的行项目字段(而非原始逗号分隔字符串)映射到模板对应的循环变量:

  • 找到邮件内容设置区,选择「Use Custom HTML」
  • 关联模板变量时,选择Zapier中Line Itemizer输出的单个商品字段,不要选合并后的字符串

备选方案:WooCommerce端预处理订单数据

如果Zapier的Line Itemizer无法满足需求,可以在WooCommerce中添加自定义代码,将订单商品数据格式化为数组后传递给Zapier:

// 代码添加到主题functions.php或自定义插件
add_action('woocommerce_order_status_completed', 'custom_format_order_items_for_zapier', 10, 1);
function custom_format_order_items_for_zapier($order_id) {
    $order = wc_get_order($order_id);
    $items = [];
    foreach ($order->get_items() as $item) {
        $items[] = [
            'product_name' => $item->get_name(),
            'product_description' => $item->get_description(),
            'quantity' => $item->get_quantity()
        ];
    }
    // 将格式化后的商品数组存入自定义字段,供Zapier获取
    update_post_meta($order_id, 'zapier_formatted_items', json_encode($items));
}

之后在Zapier的WooCommerce触发步骤中,获取这个自定义字段的JSON数据,解析后直接传入Campaign Monitor模板的循环逻辑即可。


内容的提问来源于stack exchange,提问作者Rafał Ablewski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 04:05:12