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

如何修改WooCommerce新订单交易邮件收发货地址字段顺序,将公司名置前

调整WooCommerce订单邮件中地址字段顺序的方法

你之前修改结账页面地址字段的代码只作用于前端结账表单,不会影响订单邮件里的地址渲染。要把邮件中的账单/配送地址的公司名称移到首位,需要用WooCommerce提供的订单地址格式化过滤器。

代码实现

把以下代码添加到你的主题functions.php文件,或者自定义插件中:

// 统一调整订单邮件中的账单与配送地址字段顺序,将公司名称置于首位
function reorder_order_email_address_fields($address, $order) {
    // 定义字段的期望顺序,company放在最前面
    $field_order = array(
        'company',
        'first_name',
        'last_name',
        'address_1',
        'address_2',
        'city',
        'state',
        'postcode',
        'country'
    );

    $sorted_address = array();
    // 按定义的顺序重新排列字段
    foreach ($field_order as $field) {
        if (isset($address[$field]) && !empty($address[$field])) {
            $sorted_address[$field] = $address[$field];
        }
    }

    return $sorted_address;
}
// 绑定到账单地址格式化过滤器
add_filter('woocommerce_order_formatted_billing_address', 'reorder_order_email_address_fields', 10, 2);
// 绑定到配送地址格式化过滤器
add_filter('woocommerce_order_formatted_shipping_address', 'reorder_order_email_address_fields', 10, 2);

代码说明

  • 这段代码通过woocommerce_order_formatted_billing_address和woocommerce_order_formatted_shipping_address两个过滤器,分别修改账单和配送地址的字段顺序。
  • 你可以根据需求调整$field_order数组里的字段顺序,比如移除不需要的字段,或者调整其他字段的位置。
  • 代码会自动过滤掉空字段,避免邮件里显示空行。

添加完成后,测试发送新订单邮件,就能看到公司名称已经显示在地址的最顶部了。

内容的提问来源于stack exchange,提问作者cipre

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 13:07:47