如何修改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
相关产品推荐
相关产品推荐

