如何调整WooCommerce订单邮件中VAT号码至账单地址区域
调整WooCommerce订单邮件中VAT号码的显示位置
我用以下代码在WooCommerce订单邮件中显示客户VAT信息:
// VAT Number in emails add_filter( 'woocommerce_email_order_meta_keys', 'supine_vat_number_display_email' ); function supine_vat_number_display_email( $keys ) { $keys['VAT Number'] = '_billing_vat'; return $keys; }
这段代码能正常运行,但VAT号码显示在账单地址区域之外,我自行修改后未能生效,需要调整代码让VAT号码显示在账单地址区域内。
解决方案
要将VAT号码整合到账单地址区域,需要替换原有的钩子,改用woocommerce_order_get_formatted_billing_address过滤器,该钩子可直接修改格式化后的账单地址内容。
替换后的代码如下:
// 将VAT号码添加到订单邮件的账单地址区域 add_filter( 'woocommerce_order_get_formatted_billing_address', 'supine_add_vat_to_billing_address', 10, 2 ); function supine_add_vat_to_billing_address( $formatted_address, $order ) { // 获取订单对应的VAT号码 $vat_number = get_post_meta( $order->get_id(), '_billing_vat', true ); // 若VAT号码存在,追加到账单地址末尾 if ( ! empty( $vat_number ) ) { $formatted_address .= '<br>' . __( 'VAT Number:', 'woocommerce' ) . ' ' . esc_html( $vat_number ); } return $formatted_address; }
说明
- 该代码会拦截已格式化的账单地址,当存在有效VAT号码时,以换行形式追加到地址内容最后,适配邮件的HTML显示格式。
- 请移除之前使用的
woocommerce_email_order_meta_keys相关代码,避免VAT号码重复显示。
内容的提问来源于stack exchange,提问作者dlejongard
相关产品推荐
相关产品推荐

