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

WooCommerce需求:无论配送方式,订单邮件需显示配送信息及订单备注

解决WooCommerce订单邮件始终显示配送地址与订单备注的问题

替换你之前用于显示配送地址的代码,以下代码可实现无论选择何种配送方式,订单邮件中同时显示配送信息和客户订单备注:

// 强制在所有订单邮件中显示配送地址
add_action( 'woocommerce_email_customer_details', 'force_display_shipping_address_in_emails', 20, 4 );
function force_display_shipping_address_in_emails( $order, $sent_to_admin, $plain_text, $email ) {
    // 仅在客户邮件中执行,如需管理员邮件也显示可删除此行
    if ( $sent_to_admin ) return;

    // 检查订单是否存在配送地址,避免空内容显示
    if ( $order->has_shipping_address() ) {
        echo '<h2>' . __( 'Shipping Address', 'woocommerce' ) . '</h2>';
        $shipping_address = $order->get_formatted_shipping_address();
        if ( $plain_text ) {
            echo wp_kses_post( $shipping_address ) . "\n\n";
        } else {
            echo wp_kses_post( $shipping_address ) . '<br><br>';
        }
    }
}

// 强制在所有订单邮件中显示客户订单备注
add_action( 'woocommerce_email_after_order_table', 'force_display_order_notes_in_emails', 10, 4 );
function force_display_order_notes_in_emails( $order, $sent_to_admin, $plain_text, $email ) {
    $customer_note = $order->get_customer_note();
    
    if ( ! empty( $customer_note ) ) {
        if ( $plain_text ) {
            echo "\n" . __( 'Customer Note:', 'woocommerce' ) . "\n" . wp_kses_post( $customer_note ) . "\n\n";
        } else {
            echo '<h3>' . __( 'Customer Note', 'woocommerce' ) . '</h3>';
            echo '<p>' . wp_kses_post( $customer_note ) . '</p><br>';
        }
    }
}

代码说明

  • 配送地址模块:绕过WooCommerce默认的配送方式判断逻辑,只要订单存在配送地址就强制显示。若需要管理员接收的邮件也显示配送地址,删除if ( $sent_to_admin ) return;即可。
  • 订单备注模块:自动检测订单是否有客户填写的备注,若有则在订单表格后显示,兼容纯文本和HTML两种邮件格式。

使用方法

  1. 删除你之前添加的仅显示配送地址的旧代码
  2. 将上述代码添加到WordPress主题的functions.php文件末尾,或通过Code Snippets等自定义代码插件添加
  3. 测试自提、普通配送等不同下单流程,验证邮件内容是否符合需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:22:42